综合( 右侧选择分类 )
java

基于可视化配置的日志结构化转换实现

导读:数据总线DBus的总体架构中主要包括六大模块,分别是:日志抓取模块、增量转换模块、全量抽取程序、日志算子处理模块、心跳监控模块、Web管理模块。六大模块各自的功能相互连接,构成DBus的工作原理:通过读取RDBMS增量日志的方式来实时获取增量数据日志(支持全量拉取);基于Logstash,flume,filebeat等抓取工具来实时获得数据,以可视化的方式对数据进行结构化输出。本文主要介绍的
2269 人浏览
java

一个项目的SpringBoot微服务改造过程

SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、MyBatis,数据库使用MySQL,前端展示使用Freemark。今年,我们对该项目进行了一次革命性的改进,改造成SpringBoot架构,并且把前后端分离,前端采用Vue框架。一、使用SpringBoot架构进行改造1.1 为什么使用SpringBoot相比较于传统的Spring,SpringBoot具有以下优点:部署简单,S
2174 人浏览
java

程序员笔记|详解Eureka 缓存机制

引言Eureka是Netflix开源的、用于实现服务注册和发现的服务。Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便。但是由于Eureka本身存在较多缓存,服务状态更新滞后,最常见的状况是:服务下线后状态没有及时更新,服务消费者调用到已下线的服务导致请求失败。本文基于Spring Cloud Eureka 1.4.4.RELEASE,在默认r
1953 人浏览
java

程序员笔记|编写高性能的Java代码需要注意的4个问题

一、并发Unable to create new native thread ……问题1:Java中创建一个线程消耗多少内存?每个线程有独自的栈内存,共享堆内存问题2:一台机器可以创建多少线程?CPU,内存,操作系统,JVM,应用服务器我们编写一段示例代码,来验证下线程池与非线程池的区别://线程池和非线程池的区别publicclassThreadPool{ publicstaticinttim
2055 人浏览
java

程序员笔记|常见的Spring异常分析及处理

一、前言相信我们每个人在SpringMVC开发中,都遇到这样的问题:当我们的代码正常运行时,返回的数据是我们预期格式,比如json或xml形式,但是一旦出现了异常(比如:NPE或者数组越界等等),返回的内容确实服务端的异常堆栈信息,从而导致返回的数据不能使客户端正常解析; 很显然,这些并不是我们希望的结果。我们知道,一个较为常见的系统,会涉及控制层,服务(业务)层、缓存层、存储层以及接口调用等,其
2069 人浏览
java

我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?

我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?坐标:杭州 | 工作时间:2年 | 年薪:40W毕业院校:普通二本(非计算机专业)现任职位:BAT某公司资深开发工程师身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪40W的资深开发工程师的。其实很简单——努力!我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找工作的时候就一直投IT行
2274 人浏览
java

面试:你懂什么是分布式系统吗?Redis分布式锁都不会?

我面试过上千个程序员,我发现有80%的程序员对于分布式系统,并没有一个很清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,有一些人简历上写着熟悉分布式系统,但是随着我深入问下只能算是管中窥豹,只见得其中一斑。那么究竟什么是分布式系统?分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的
2860 人浏览
java

为什么80%的码农都做不了架构师?

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。而架构师也可以分为初级、中级、高级,江湖上真正高水平的架构师就更少了。所以,80%码农干上许多年,还是做不了架构师,正在辛苦工作的程序员们,你有没有下面几种感觉?① 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。② 我
2284 人浏览
java

java高级技术体系,撸了今年阿里、头条和美团的面试,我有一个重要发现

就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。最近我搜集了93套阿里、腾讯、美团、网易等公司19年的面试题,把技术点梳理成一份大而全的“Java高级工程师”面试xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节,由于篇幅有限,这里以图片的形式给大家展示一部分。这份 xmind 尤其适合:1.近期想跳槽
3069 人浏览
php

为什么程序猿996多猝屎,而企业家007却不会?

2275 人浏览
php

PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认

1,通过 brew 安装 php在终端输执行如下命令,不需要指定安装php版本,它会自动升级到最新版本,同时brew会自动update。1brew install php2,启用新版本的 php(1)安装后我们在终端执行php -version会发现版本还是老的:(2)首先我们执行如下命令打开.bash_profile1sudo vim ~/.bash_profile(3)按下i键启用编辑模式,并
2525 人浏览
php

MySQL的text类型的最大长度

有个字段是text类型,竟然67kb的内容都保存不了,说是 Data too long, 爆掉了查看了一下,原来是这样的: TINYTEXT256 bytes TEXT65,535 bytes~64kbMEDIUMTEXT 16,777,215 bytes~16MBLONGTEXT4,294,967,295 bytes~4GB改成mediumtext就ok了,16M应该够用了
2586 人浏览
php

2019年8月编程语言排行

八月头条:波澜不惊的月度排行 相比 7 月榜单,本月编程语言的排名并未有太大波动,因此TIOBE 官方也将 8 月编程语言排行榜戏谑为“Silly season”。在 Top 10 中唯一的变化就是 Objective-C 和 SQL 的位置首次发生了变换(Objective-C 位列第九,SQL 排名第十)。近年来,Objective-C 在苹果主推 Swift 的举措下,发展得尤为艰难。不过
2312 人浏览
kotlin

包与导入

源文件通常以包声明开头:packagefoo.bar funbaz(){} classGoo{} //……源文件所有内容(无论是类还是函数)都包含在声明的包内。 所以上例中baz()的全名是 <foo.bar.baz、Goo 的全名是 foo.bar.Goo。如果没有指明包,该文件的内容属于无名字的默认包。默认导入有多个包会默认导入到每个 Kotlin 文件中:kotlin
2777 人浏览
kotlin

基本数据类型

在 Kotlin 中,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数和属性。 一些类型可以有特殊的内部表示——例如,数字、字符和布尔值可以在运行时表示为原生类型值,但是对于用户来说,它们看起来就像普通的类。 在本节中,我们会描述 Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。一、数字Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。例如,对于
2217 人浏览
kotlin

Kotlin编码风格

此页面包含当前 Kotlin 语言的编码风格一、命名风格如果拿不准的时候,默认使用Java的编码规范,比如:使用驼峰法命名(并避免命名含有下划线)类型名以大写字母开头方法和属性以小写字母开头使用 4 个空格缩进公有函数应撰写函数文档,这样这些文档才会出现在 Kotlin Doc 中二、冒号类型和超类 之间的冒号前要有一个空格,而实例和类型之间的冒号前不要有空格:interface Foo<o
1965 人浏览
kotlin

kotlin语法习惯

一些在 Kotlin 中广泛使用的语法习惯,如果你有更喜欢的语法习惯或者风格,建一个 pull request 贡献给我们吧!创建 DTOs(POJOs/POCOs)dataclassCustomer(valname:String,valemail:String)会为 Customer 类提供以下功能:所有属性的 getters (对于 var 定义的还有 setters)equals()hash
2047 人浏览
kotlin

kotlin基本语法

一、定义包包的声明应处于源文件顶部:packagemy.demo importjava.util.* //……目录与包的结构无需匹配:源代码可以在文件系统的任意位置。注:更多关于包的内容请参考包。二、定义函数1,带有两个Int参数、返回 <code>Int 的函数://函数 funsum(a:Int,b:Int):Int{ returna+b } //测试 funmain
2340 人浏览
kotlin

Kotlin 1.1版本新特性

JavaScript的从Kotlin 1.1开始,JavaScript目标不再被认为是实验性的。支持所有语言功能,还有许多新工具可用于与前端开发环境集成。有关更改的更详细列表,请参阅下文。协调(实验)在科特林1.1的主要新功能是协同程序,带来的支持async/ <code>await,yield和类似的编程模式。Kotlin设计的关键特征是协同执行的实现是库的一部分,而不是语言,所以你
2198 人浏览
kotlin

Kotlin在Android中的开发

Kotlin非常适合开发Android应用程序,将现代语言的所有优势带入Android平台,而不会引入任何新的限制:兼容性:Kotlin与JDK 6完全兼容,确保Kotlin应用程序可以在较旧的Android设备上运行,没有任何问题。Kotlin工具在Android Studio中完全支持,并与Android构建系统兼容。性能:由于非常类似的字节码结构,Kotlin应用程序运行速度与Java类似。
2357 人浏览