自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 java8新特性之日期时间(二)

一、ZoneId它是一个时区ID,如Europe/Paris。ZoneId用来定义在Instant和LocalDateTime之间转换的规则。它有两种不同类型的ID:1)固定偏移-从UTC/Greenwich开始的偏移,对所有本地日期时间使用相同的偏移2)地理区域-适用于查找UTC/格林威治偏移量的特定规则集的区域 //获取上海zoneId ZoneId zoneId = ZoneId.of("As...

2021-11-17 15:51:29 295

原创 java8新特性之日期时间(一)

一、概述太阳日的长度是人类测量时间的标准方式。传统上,这被细分为24小时60分60秒,形成86400秒的一天。现代计时是以原子钟为基础的,原子钟精确地定义了相对于铯原子跃迁的SI秒。一秒的长度被定义为非常接近一天的86400分之一。不幸的是,随着地球自转,一天的长度也不尽相同。此外,随着时间的推移,随着地球速度的减慢,一天的平均长度越来越长。因此,2012年的太阳日长度略长于86400 SI秒。任何一天的实际长度以及地球减速的程度都是无法预测的,只能通过测量来确定。UT...

2021-11-12 15:01:13 591

原创 java8新特性之Optional

一、概述它是jdk1.8提供的一个容器对象,其目的之一是对null值对象做更好的判断和处理,其二是适应lambda表达式编程风格,四大函数式接口Function,Supplier,Consumer,Predicate在Optional方法中均有使用。二、构造函数1.空对象 Optional.empty()2.包含value对象 Optional.of(value)3.无法确定是否为null Optional.ofNullable(o...

2021-11-05 15:04:30 238

原创 java8新特性之FunctionalInterface

一、概述FunctionInterface函数接口是java8一个非常重要的新特性,它是一种指示性的类型注解,用于指示接口类型声明是由Java语言规范定义的功能接口。从概念上讲,函数接口只有一个抽象方法。因为默认方法有一个实现,所以它们不是抽的。如果接口声明一个抽象方法覆盖Object对象的一个公共方法,则该方法也不计入接口的抽象方法计数,因为接口的任何实现都将具有来自Object对象或其他地方的实现。请注意,可以使用lambda表达式、方法引用或构...

2021-11-02 10:46:22 1414

原创 java8新特性之lambda表达式

目录一、概述二、pom文件三、ScriptEngineManager一、概述java8中一个非常重要的特性就是lambda表达式,我们可以把它看成是groovy的闭包概。,它允许把函数当做参数来使用,是对面向函数式编程的思想的实现,使代码看起来更加简洁明了。二、lambda表达式语法(parameters) -> expression;没有入参:() -> expression;一个入参:(param1) -> expr...

2021-10-28 11:25:06 902

原创 Git 常用命令集

Git 基本操作git initgit init 初始化Git仓库git init newrepo 指定目录作为Git仓库git clone <repo>git clone ssh://git@test.szwn.io:8080/test-szwn.git 从Git仓库中拷贝项目git remotegit .

2021-10-19 14:41:26 756

原创 Spring Cloud Zuul简易应用

一、概述 Zuul是所有来自设备和网站的请求到Spring Cloud 微服务应用程序后端的门户。作为一个网关服务应用程序,Zuul旨在实现动态路由、监控和安全认证和鉴权,因此它主要提供如下功能。 统一入口:为全部为服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性。 鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。 动态路由:动态的将请求路由到不同的后端集群中。 减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映...

2020-12-11 11:26:06 110

原创 zookeeper源码分析之RequestProcessor

目录一、RequestProcessor二、PrepRequestProcessor三、SyncRequestProcessor四、FinalRequestProcessor一、RequestProcessor请求处理器被链接在一起以处理事务。请求总是按顺序处理的。独立服务器和主从服务器将稍微不同的请求处理器链接在一起。请求总是通过请求处理器链向前移动。请求通过proces...

2020-01-14 10:14:10 1787

原创 zookeeper源码分析之ZooKeeperServer

目录一、构造函数二、SessionExpirer三、ServerStats.Provider四、startdata五、startup六、processConnectRequest七、processPacketZooKeeperServer是zookeeper提供的简单单机服务器,它的请求处理链只有PrepRequestProcessor、SyncRequestPro...

2020-01-10 13:41:50 716

原创 zookeeper源码分析之FileTxnSnapLog

目录一、SnapShot二、FileSnap三、TxnLog四、FileTxnLog五、FileTxnIterator六、FileTxnSnapLogzookeeper维护的数据有树形结构的DataTree,它的每一个节点是DataNode。另一个是TxnLog事务日志,它包括事务头TxnHeader和事务数据Record。它们存在zookeeper服务器的内存中,...

2020-01-08 10:03:07 612

原创 zookeeper源码分析之Watcher和DataTree

目录一、Watcher二、WatchManager三、DataTree一、WatcherWatcher监听器,zookeeper数据节点实现监听机制,监听数据和节点变化事件。Watcher接口中只有一个process(WatchedEvent event)方法,包含两个内部类,Event(具体事件)和WatcherType(监听类型)。public interface W...

2019-12-30 14:27:41 558

原创 zookeeper源码分析之Record

目录一、Record二、OutputArchive三、InputArchive四、BinaryOutputArchive五、BinaryInputArchive六、DataNode一、Recordzookeeper通过维护内存中的DataTree和DataNode来向外提供数据节点服务,它也可以序列化持久至文件,反序列化至流中,进行网络请求传输等,所有zookee...

2019-12-27 15:59:44 524 1

原创 Seata源码分析之Session

目录一、GlobalSession二、GlobalSessionLock三、BranchSession四、DefaultLockManager五、Locker六、MemoryLocker一、GlobalSessionGlobalSession是seata协调器DefaultCoordinator管理维护的重要部件,当用户开启全球分布式事务,TM调用begin方法请求...

2019-12-24 11:24:10 633

原创 Seata源码分析之RpcServer

目录一、概述二、AbstractRpcRemoting三、AbstractRpcRemotingServer四、RpcServer五、DefaultServerMessageListenerImpl一、概述seata的事务协调器TC(即DefaultCoordinator类)需要发送rpc请求至RM,进行branchCommit和branchRollback。持有的S...

2019-12-23 16:10:05 798

原创 Seata源码分析之Core和DefaultCoordinator

目录一、Core二、DefaultCore三、DefaultCoordinator一、CoreCore接口为seata处理全球事务协调器TC的核心处理器,它继承ResourceManagerOutbound接口,接受来自RM的rpc网络请求(branchRegister,branchReport,lockQuery)。同时继承TransactionManager接口,接受来自T...

2019-12-20 16:14:46 833

原创 Seata源码分析之AbstractUndoExecutor

目录一、UndoExecutorFactory二、AbstractUndoExecutor三、MySQLUndoInsertExecutor四、MySQLUndoDeleteExecutor五、MySQLUndoUpdateExecutorUndoExecutor为生成执行undoSql的核心。如果全球事务回滚,它会根据beforeImage和afterImage以及s...

2019-12-20 10:13:44 958

原创 Seata源码分析之SQLRecognizer与Executor

目录一、SQLRecognizer二、Executor三、PlainExecutor四、BaseTransactionalExecutor五、SelectForUpdateExecutor六、AbstractDMLBaseExecutor七、InsertExecutor八、UpdateExecutor九、DeleteExecutor一、SQLRecogniz...

2019-12-17 15:11:39 1366

原创 Seata源码分析之Resource

目录一、Resource二、TCCResource三、DataSourceProxy四、ConnectionProxy五、ConnectionContext六、StatementProxy七、PreparedStatementProxy八、ExecuteTemplate一、ResourceResource能被ResourceManager管理并且能够关联gl...

2019-12-13 15:42:47 1272

原创 Seata源码分析之TransactionManager(二)

目录一、@GlobalTransactional二、GlobalTransactionScanner三、GlobalTransactionalInterceptor四、GlobalLockTemplate五、TransactionalTemplate六、TransactionHookManager一、@GlobalTransactional下面我们来分析通过@Glo...

2019-12-13 10:57:31 1266

原创 Seata源码分析之TransactionManager(一)

目录一、用户开启事务示例1.GlobalTransaction的api方式2.@GlobalTransaction注解方式二、TransactionManager三、DefaultTransactionManager四、TransactionManagerHolder五、GlobalTransaction六、DefaultGlobalTransaction...

2019-12-05 17:43:14 1427

原创 Seata源码分析之ResourceManager

目录一、ResourceManager二、AbstractResourceManager三、DefaultResourceManager四、TCCResourceManager五、DataSourceManager 六、AsyncWorker七、UndoLogManager一、ResourceManagerRes...

2019-12-04 17:30:01 902

原创 分布式事务管理之seata简介

目录一、seata是什么二、传统的分布式事务管理解决方案1.两阶段提交方案/XA方案2.TCC方案三、seata解决方案四、Seata有3个基本组件五、Seata管理的分布式事务的典型生命周期六、快速开始一、seata是什么Seata 一个简单可扩展的自动事务管理框架,应用于微服务分布式架构,它在事务管理方面具有高性能和易用性的特点。首先我们来看微服务中...

2019-12-04 14:58:19 1234 2

原创 java整合Groovy的四种方式

目录一、概述二、pom文件三、ScriptEngineManager四、GroovyShell五、GroovyClassLoader六、GroovyScriptEngine七、SecureASTCustomizer八、SandboxTransformer九、DSL(Json转换)一、概述Groovy is a multi-faceted language...

2019-11-22 14:17:30 7532

原创 Dubbo源码分析之ReferenceBean的初始化(三)

目录一、概述二、ReferenceConfig三、JavassistProxyFactory四、Proxy五、InvokerInvocationHandler一、概述通过前两节的分析,我们已经知道,spring容器启动后,会对ReferenceBean初始化。在它的初始化过程中会调用RegistryProtocol的refer方法,它会做如下事情:1.检查和更新x...

2019-11-18 19:07:31 2388

原创 Dubbo源码分析之Netty网络服务(二)

目录一、概述二、Exchangers三、HeaderExchanger四、Transporters五、NettyTransporter六、NettyClient七、HeaderExchangeClient八、HeaderExchangeChannel九、NettyChannel一、概述上一篇文章已经分析了Dubbo如何通过netty技术绑定provide...

2019-11-15 17:44:06 2639 1

原创 Dubbo源码分析之ReferenceBean的初始化(二)

上一篇文章对ReferenceBean的初始化的过程有了初步了解,下面我们深入分析它是如何获取zookeeper上service provider的url地址的,并转换成可调用的invoker的。回到RegistryProtocol类中doRefer方法中,我们看到如下代码directory订阅节点信息。directory.subscribe(subscribeUrl.addParame...

2019-11-15 14:14:16 2460

原创 Dubbo源码分析之ReferenceBean的初始化(一)

目录一、概述二、ReferenceBean三、ReferenceConfig四、RegistryProtocol五、ZookeeperRegistry六、RouterChain七、FailoverClusterInvoker一、概述spring容器启动dubboprovider服务时,会根据spring.xml的文件配置实例化spring context以及...

2019-11-14 16:37:07 3910

原创 Dubbo源码分析之InternalThreadLocal

目录一、概述二、InternalThread三、InternalThreadLocalMap四、InternalThreadLocal五、RpcContext一、概述jdk提供线程变量存放区ThreadLocal,采用的是对于不同线程Thread创建对应的ThreadLocalMap用于存放用户的变量的机制,当用户调用ThreadLocal.get()方法获取变量时,T...

2019-11-13 15:29:43 2482 3

原创 Dubbo源码分析之Netty网络服务(一)

目录一、概述二、Exchangers三、HeaderExchanger四、Transporters五、NettyTransporter六、NettyServer七、NettyServerHandler一、概述Dubbo service的provide和consume底层默认使用netty进行网络通信,并将请求对象根据自定义的codec规则进行编码及解码,从而完成...

2019-11-12 18:34:02 1993 2

原创 Dubbo源码分析之QoS服务(二)

一、概述上一篇文章介绍了Dubbo的QoS服务的基本作用和配置使用https://blog.csdn.net/qq_33513250/article/details/102978132接下来我们进行源码分析它的功能是如何实现的。二、QosProtocolWrapperdubbo服务提供者ServiceBean的初始化过程中,会调用Protocol接口的export方法,Rere...

2019-11-12 11:09:49 4649 1

原创 Dubbo源码分析之QoS服务(一)

目录一、概述二、QoS配置三、连接1.telnet连接2.http连接四、命令1.help帮助菜单2.ls列出所有服务3.online上线服务4.offline下线服务5.quit关闭连接一、概述QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用...

2019-11-08 18:26:51 4027 1

原创 Dubbo源码分析之ServiceBean的初始化(三)

目录一、概述二、doLocalExport三、总结一、概述在ServiceBean的初始化(二)文章中,我对RegitryProtocol类的export方法做了初步的分析,主要学习了register(registryUrl, registeredProviderUrl)方法是通过ZookeeperRegistry向zookeeper注册provider信息。下面我们接着看Re...

2019-11-08 16:39:24 1899 1

原创 Dubbo源码分析之Filter和InvokerChain

目录一、概述二、Filter三、ProtocolFilterWrapper一、概述Dubbo的serviceBean初始化export时和ReferenceBean初始化refer引用provider端的Invoker时,都会调用ProtocolFilterWrapper包装类的buildInvokerChain方法对Invoker包装成添加了过滤器链的CallbackRegi...

2019-11-07 18:45:04 2443 1

原创 Dubbo源码分析之CuratorZookeeperClient与CuratorZookeeperTransporter

一、概述Dubbo使用Zookeeper作为service注册中心时,provider发布是在zookeeper服务器上创建/dubbo父节点,然后再在上面创建以url为路径的子节点,Customer获取子节点路径进行解析,建立Netty连接,调用服务,获取结果。Dubbo默认使用开源的Curator作为zookeeper的客户端,并进行了基本的API封装,下面我们来分析CuratorZook...

2019-11-01 11:08:50 3650 1

原创 Dubbo源码分析之ServiceBean的初始化(二)

目录一、概述二、doExport一、概述上一篇文章中对Dubbo的ServiceBean初始化checkAndUpdateSubConfigs方法做了简单的源码跟踪分析。它会startConfigCenter,prepareEnvironment,getDynamicConfiguration,进而启动zookeeper客户端,连接至zookeeper。https://blog...

2019-10-31 16:49:49 2429 1

原创 Dubbo源码分析之SPI(三) | ExtensionLoader

目录一、概述二、AdaptiveClassCodeGenerator三、getExtension方法一、概述上一篇文章介绍了Dubbo的SPI机制ExtensionLoader源码,分析了ExtensionLoader如何从META-INFO/dubbo等目录下获取service provider,并了解了它的缓存机制,缓存class字节码,缓存实例化异常Exception,...

2019-10-31 11:11:21 2836 1

原创 Dubbo源码分析之SPI(二) | ExtensionLoader

一、概述上一篇文章已经介绍了jdk SPI机制的源码,Dubbo也采用SPI机制进行接口服务的扩展ExtensionLoader,不过采用了不同的实现方式,相比于jdk提供的ServiceLoader复杂的多,丰富了以下几个功能。1.自动注入依赖的扩展类2.自动包装扩展类3.增加注解SPI,提供默认实现类4.提供注解Adaptive,采用javassist动态生成代码,默认实现...

2019-10-30 16:24:40 2715 1

原创 Dubbo源码分析之SPI(一) | serviceLoader

目录一、概述二、JDK ServiceLoader一、概述SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来对框架扩展和组件的替换,实现服务接口可插拔,通过配置文件进行动态配置。许多框架中使用到了SPI机制,例如日志log4j,xml解析工厂,FileSystem文件系统,dubbo等。二、JDK S...

2019-10-29 18:46:28 2660

原创 Dubbo源码分析之ServiceBean的初始化(一)

一、概述spring容器启动dubboprovider服务时,会根据spring.xml的文件配置实例化spring context以及初始化bean,DubboNamespaceHandler注册DubboBeanDefinitionParser解析xml,实例化有关dubbo的相关bean。当初始化服务提供者ServiceBean时,调用afterPropertiesSet方法时,会打开...

2019-10-28 16:00:22 3629 2

原创 zookeeper的应用(一) | Dubbo

目录一、概述二、背景三、Apache Dubbo四、Demo代码1.pom文件2.创建service接口3.创建service实现类4.配置provider.xml5.编写service provider spring启动类6.配置consumer.xml7.编写service consumer spring启动类8.测试一、概述上一篇文...

2019-10-25 09:37:57 5983 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除