- 博客(17)
- 资源 (4)
- 收藏
- 关注
原创 第八课 protocol buffer实战
1.protocol buff是一种协议,是谷歌推出的一种序列化协议2.Java序列化协议也是一种协议3.两者的目的是,将对象序列化成字节数组,或者说是二进制数据java序列化示例public class JAVA2Bytes { public static void main(String[] args) throws Exception { byte[] bytes
2017-10-31 15:26:36 314
原创 第七课 Netty学习之心跳
idleStateHandler用来检测会话状态心跳其实就是一个普通的请求,特点数据简单,业务也简单心跳对于服务端来说,定时清除闲置会话 channelclose(netty3)心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!心跳检测简单实例public class Server { public static void main(String[] args) {
2017-10-31 13:54:21 290
原创 第三课 Netty客户端
public class Client { public static void main(String[] args) { ClientBootstrap clientBootstrap = new ClientBootstrap(); ExecutorService boss = Executors.newCachedThreadPool();
2017-10-29 16:04:00 518
原创 第二课 Netty服务端
netty应用的领域1分布式进程通信 例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x2、游戏服务器开发 最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 netty5.x代码示例public class Server { public static void main(S
2017-10-29 15:50:37 346
原创 第一课 NIO
传统IO的特点阻塞点 server.accept(); inputStream.read(bytes);单线程情况下只能有一个客户端用线程池可以有多个客户端连接,但是非常消耗性能无法作为长连接服务器可以做短连接(旧版本Tomcat)NIO的关键词ServerSocketChannel ServerSocketSocketChannel SocketSelectorSelect
2017-10-29 14:00:00 365
原创 Dubbo服务只订阅和只注册
Q:为方便开发测试,经常会在线下公用一个所有服务可用的注册中心,这时,如果一个正在开发中的服务提供者注册,可能会影响到消费者不能正常运行A:可以让服务提供者开发方,只订阅服务,而不注册正在开发的服务,通过直连测试正在开发的服务禁用注册配置<dubbo:registry address="localhost:9090" register="false">Q: 如果有两个镜像环境,连个注册中心,有一个服
2017-10-27 10:09:23 1745
原创 Dubbo直连提供者
在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候就可能需要进行点对点直连,点对点直连的方式下,将以服务接口为单位,忽略注册中心的提供者列表(1) 如果是线上需求需要点对点,可在中配置url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下<dubbo:reference interface="com.edu.xxx.XxxService" url="dubbo://lo
2017-10-27 09:28:28 337
原创 Dubbo服务启动依赖检查
启动时检查Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到null引用,如果check=false,总是会返回引用,当服务恢复时,能自动连上。 可以通过check=”fal
2017-10-26 20:54:59 358
原创 Dubbo服务接口的设计原则
根据接口类型划分简单的数据查询接口:action facade dao带业务逻辑的数据查询接口:action facade biz dao简单的数据写入接口:action facade dao带业务逻辑的数据写入接口:action facade biz dao同步接口异步接口设计原则接口粒度服务接口尽可能大粒度,每个服务方法应代表一个功能,而不是某功能的一个步骤,否则将地面临分布式事务
2017-10-26 20:36:22 1217
原创 Dubbo服务集群容错配置
可配置标签 <dubbo:reference/> <dubbo:service/>属性:cluster类型: String是否必须:可选默认值:failover作用:调优可选属性名称:failover/failback/failsafe/failfast/forking1.Failover (默认值) 失败自动切换,当出现失败时,重试其他服务器,通常用于读操作,可通过retries
2017-10-26 17:15:04 997
原创 Failure executing javac, but could not parse the error
在执行maven install命令时碰到过这个错误,百度了好多答案,并不是jdk环境变量的问题 而是java文件的开头的中文注释,去掉即可去除报错
2017-10-24 10:57:19 1732
原创 Dubbo服务的运行方式(使用maven构建dubbo可执行的jar包)
1.使用Servlet容器运行(Tomcat Jetty等)—–不建议缺点:增加复杂性(端口,管理) 浪费资源(内存)2.自建Main方法来执行(Spring容器) —不建议(仅限本地调试)缺点:Dubbo本身的高级特性没用上 启动类可能会有缺陷public class DubboProvider { private static final Log log = LogFactory.g
2017-10-24 09:24:31 355
原创 Java设计模式
设计模式开闭原则:对修改该关闭,对扩展开发代码重用低耦合(模块与模块之间,类与类之间依赖程度要降低)高内聚(模块或者类内部依赖程度要高)易扩充易维护1 适配器模式类的适配器模式对象的适配器模式接口的适配器模式2 责任链模式横向扩展 链条上有多个对象,每个对象持有下一个对象的引用,这样形成一条链,请求在这条链上传递 在隐瞒用户的情况下对系统进行动态调整3 策略模式策略模式
2017-10-18 20:34:11 232
原创 Mongodb入门
mongodbnosql型数据库 not only sql mongodb的文档类似于一个json对象{ user:{ name: "zhang", age:"20" }}主要特点可以设置索引,更快排序支持丰富的查询表达式与关系型数据库对比 RDBMS Mongodb 解释说明 Database Database
2017-10-16 20:44:54 204
原创 Java核心技术之反射
1 Java的类加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 2 Class实例化的方式用new语句创
2017-10-12 15:15:38 265
原创 关于HashMap那些事
1 什么是hash它是将一个任意长度的二进制值(key)通过一个映射关系转换成一个固定长度的二进制值(value) 关键字:任意长度 映射关系(hash算法) 固定长度固定长度的二进制值相当于一个任意长度的二进制值的一个摘要 2 hash表特点:存储效率高,取数据的时间复杂度为1 o(1) hash 通过一个key,通过一个哈希函数,找到数组中与这个key唯一映射的value
2017-10-12 11:39:42 315 1
gradle-5.1.1-all.zip
2020-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人