发布了文章2022-07-03
tcp三次握手后,client开始和server进行SSL连接,默认client用jdk的证书库对服务器证书进行认证,如果证书非法抛异常。如下示例代码
发布了文章2022-06-14
创建数据库操作的bean {代码...} 当然还有具体java代码,这里不体现出来。列出上述配置主要说明mybatis使用的大体流程。业务代码最终是拿数据库操作bean实例,如userDao去操作数据库。那我们就从userDao开始吧,看看业务代码通过mybatis是如何和db打交道的。
发布了文章2022-06-05
位运算就是二进制运算,我们知道计算机cpu运算最底层的物理实现,就是高低电平输入,抽象成数学符号就是二进制01输入。因此位运算对cpu来说是最高效的,因为我们用它的“母语”和它交流。因此,juc库很多地方都有位运算的影子,就是为了提高效率,有的地方用得巧妙真是...
发布了文章2022-05-13
SLF4j框架通过扫描classpath下面的org/slf4j/impl/StaticLoggerBinder.class类来发现日志产品jar,一般用到的日志jar 有logback、log4j2。如下是是SLF4j框架对接各个日志产品的依赖。
赞了文章2022-05-13
最早开始撸码当时就遇到几次日志jar包冲突的问题,当时也是很烦躁,毕竟了解的也不多,什么那里4j,这里4j,还有什么桥接包,而且在我感觉他们的包名都还差不多!!我当时是比较懵逼的,上网搜了下,随便看到一个类似这种桥接过去桥接过来的图我就懵,都是些啥玩意儿
发布了文章2022-03-09
如下可以看到,只要有BizDemo这个接口,就可以通过java动态代理生成一个类,这个类拥有接口BizDemo的一切方法,并且把所有方法调用,都透传到ProxyHandler的invoke方法中。
发布了文章2022-02-05
Spring 加载,用Spring加载,需要把加载的bean的元数据告诉Spring,元数据配置方式有自动装配和显式配置,加载到Spring的元数据,以BeanDefinition形式存在
发布了文章2022-02-04
1.Holder使用Holder是把具有强关联性的信息打包在一起方便同时更新,如EventLoopHolder,VerticleHolder。
发布了文章2022-02-04
概念2: Verticle1) Verticle起作用的方式,主要是通过Vertx进行部署,也就是deployVerticle2) Verticle部署,主要是Vertx框架把vertx 和context 传给Verticle,并且通过context启动
发布了文章2022-02-04
I/O模型,I/O是输入输出,网络发送和接收数据也是一种输入输出。最初jdk提供的I/O是阻塞型I/O,叫BIO,Blocking I/O,效率低。后来,开发出类NIO,非阻塞型I/O,但不是真正的异步I/O,本质是多路复用I/O。类似通信的频分复用或时分复用,提高了通信的吞吐量。
发布了文章2022-01-09
BootListenerBootListener是微服务框架启动过程各个阶段的监听器,方便业务本身定制拓展。1. EdgeBootListeneredge微服务启动创建producer之前,做配置操作 {代码...}
发布了文章2022-01-03
ServiceComb自带的3个Edge Dispatcher,可以满足大部分需求,当然开发者也可以自定义Dispatcher,自带的Dispatcher如下:org.apache.servicecomb.edge.core.DefaultEdgeDispatcherorg.apache.servicecomb.edge.core.URLMappedEdgeDispatcherorg.apache.servicecomb.ed...
发布了文章2022-01-02
eventloop线程找业务线程:通过查找operationMeta获取,operationMeta是存储处理业务逻辑元数据信息,代码AbstractRestInvocation中体现这一过程
发布了文章2022-01-01
1.发起连接2.请求之前执行HttpClientFilter的beforeSendRequest3.塞入ServiceComb的微服务调用上下文,设置响应回调处理,发送请求
发布了文章2022-01-01
Netty是一个异步网络处理框架,在实现中大量使用了Future机制,并在Java自带Future的基础上,增加了Promise机制。这两者的目的都是使异步编程更加方便使用。在阅读源码之前,我们需要对Future的机制有很清楚的认识。
发布了文章2021-12-19
serviceComb基于vertx构建,在consumer向provider发请求的时候,最终是通过vertx的eventloop线程发送出去。
发布了文章2021-12-19
启动: Spring启动加载CseApplicationListener baan,调用注册管理服务的init接口,监听spring事件,事件触发后调用scbEngine.run();然后沿着上述的异常图可知,scbEngine对微服务进行注册;注册过程中发现serviceCenter和本地微服务契约不一样,抛异常。 {代码...}
发布了文章2021-11-07
一、建立索引与查询优化 {代码...} 1.组合索引创建 {代码...} 2.模糊查询 {代码...} 3.order by 查询 {代码...} 二、覆盖索引优化 {代码...} 1.覆盖索引介绍InnoDB:有两大索引,聚集索引和普通索引;聚集索引存储行数据,普通索引存储主键值回表查询,以普通索引查...
发布了文章2021-10-24
最近看vertx的reactor模式介绍,翻了一下网页,链接进入软件设计模式,发现了秘密,软件设计模式类型1.创建类型设计模式2.结构类型的设计模式3.行为类型的设计模式4.并发设计模式(reactor是并发设计模式的一种)
发布了文章2021-10-10
需要说明的是,一个微服务,如果仅仅对外提供服务就是Provider,如果仅仅是请求其他微服务就是Consumer,两者都涉及,那么这个微服务,既是Provider又是Consumer,如Edge网关,就是这样,它接收外部的请求,此时是Provider角色,把请求转给下游的其他微服务,此时是C...