Kafka源码解析-生产者 平时使用kafka的过程中,总觉得生产者发送消息是简单的,这是因为在工作中只需要确认生产者和消费者发送和接收消息的内容,就可以完成我们的工作,但是实际上不是的,我们需要考虑不同业务场景的适用性,调整我们的配置方案。
Kotlin: warnings found and -Werror specified 1、问题描述Kotlin: warnings found and -Werror specified2、解决方案
设计模式之罪 2-17 门面模式 门面模式一、定义三、备忘录模式的应用1. 备忘录模式的优缺点2. 备忘录模式的使用场景3. 备忘录模式的注意事项门面模式太简单了,也太常见了,举个例子。现在有一个场景是写信,有四步:写信、写信封、装信和邮寄。为完成这个任务,我们先写一个接口ILetterProcess,描述4个过程:public interface ILetterProcess { //写信 void writeContext(String context); //写信封,地址 void fillEnv
设计模式之罪 2-18 备忘录模式 备忘录模式一、定义二、通用代码1. 发起人角色2. 备忘录角色3. 备忘录管理员角色6. 场景类三、实际例子1. 抽象元素2. 具体元素3. 访问者接口4. 访问者实现5. 场景类四、访问者模式的应用1. 访问模式的优点和缺点2. 访问者模式的使用场景3. 最佳实践一、定义备忘录模式(Memento Pattern)的定义如下:Without violating encapsulation, capture and externalize an object’s internal state so t
设计模式之罪 2-19 访问者模式 访问者模式一、定义二、通用代码1. 抽象元素2. 具体元素3. 抽象访问者4. 具体访问者5. 结构对象6. 场景类三、实际例子1. 抽象元素2. 具体元素3. 访问者接口4. 访问者实现5. 场景类四、访问者模式的应用1. 访问模式的优点和缺点2. 访问者模式的使用场景3. 最佳实践一、定义访问者模式(Visitor Pattern)的定义如下:Represent an operation to be performed on the element of an object structure.
设计模式之罪 2-20 状态模式 状态模式一、定义二、通用代码1. 抽象状态角色2. 具体状态角色3. 环境角色4. 客户类三、实际例子1. 抽象状态角色2. 具体状态角色3. 环境角色4. 客户类四、状态模式的应用1. 桥梁模式的优点和缺点2. 桥梁模式的使用场景3. 最佳实践一、定义解释器模式的定义如下:Allow an object to alter its behavior when its internal state changes. the object will appear to change its class.(
设计模式之罪 2-21 解释器模式 解释器模式一、定义二、通用代码1. 抽象表达式2. 终结符表达式3. 非终结符表达式4. 客户类三、桥梁模式的应用1. 桥梁模式的优点和缺点2. 桥梁模式的使用场景3. 最佳实践一、定义解释器模式(Interpreter Pattern)的定义如下:Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret se
设计模式之罪 2-22 享元模式 享元模式一、定义二、通用代码1. 抽象享元角色2. 具体享元角色3. 享元工厂三、桥梁模式的应用1. 桥梁模式的优点和缺点2. 桥梁模式的使用场景3. 最佳实践一、定义享元模式,即“池技术”的实现。其定义如下:Use sharing to support large number of fine-grained objects efficiently使用共享对象可以有效地支持大量的细粒度的对象#mermaid-svg-1dAqPqkEWX2wS5sD .label{font-family:'tre
设计模式之罪 2-23 桥梁模式 桥梁模式一、定义二、通用代码1. 实现化角色2. 具体实现化角色3. 抽象化角色4. 具体抽象化角色5. 场景类三、桥梁模式的应用1. 桥梁模式的优点2. 桥梁模式的使用场景3. 最佳实践一、定义桥梁模式,也叫桥接模式。其定义如下:Decouple an abstract from its implementation so that the two can vary independently将抽象和实现解耦,使得两者可以独立的变化#mermaid-svg-nUUBD8RjLvfrdb8e .l
设计模式1-6 开闭原则 开闭原则一、定义一、定义开闭原则:对扩展开放,对修改关闭。英文解释:Software entities like classes, modules and functions should be open for extension but closed for modifications.(软件实体如类、模块和函数应该对扩展开放,对修改关闭)是其他5种原则的精神领袖。...
设计模式1-5迪米特法则 迪米特法则一、定义二、举例只和朋友交流朋友之间也有距离三、优点四、最佳实践一、定义迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP):一个对象应该对其他对象有最少的了解。英文解释:Only talk to your immediate friends.(只与直接的朋友通信)二、举例只和朋友交流情景:老师让体育委员清点全班女生人数,类图如下:很明显,类Teacher依赖了非朋友类——Girl类,那么问题来了什么是朋
设计模式1-4 接口隔离原则 接口隔离原则一、定义二、举例三、优点四、最佳实践一、定义接口隔离原则:接口尽量细化,同时接口中的方法尽量少。英文定义1:Clients should not be forced to depend upon interfaces that they don’t use.(客户端不应该依赖它不需要的接口)英文定义1:The dependency of one class to another one should depend on the smallest possible interface.(类
设计模式1-3 依赖倒置原则 依赖倒置原则一、定义二、举例三、优点四、最佳实践一、定义依赖倒置原则(Dependence Inversion Principle, DIP):依赖于抽象,不依赖于具体,即面向接口编程——OOD(Object-Oriented Design,面向对象设计)。英文原始定义:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions shou
设计模式1-2 里氏替换原则 里氏替换原则一、定义二、举例三、里氏替换原则的优点四、最佳实践一、定义里氏代换原则(Liskov Substitution Principle, LSP):只要父类能出现的地方子类就可以出现,并且替换为子类不会发生任何错误或异常。英文定义1:If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of
设计模式1-1 单一职责原则 单一职责原则一、定义二、举例三、单一职责的优点四、最佳实践一、定义单一职责(Single Responsibility Principle, SRP):应该有且仅有一个原因引起类的变更。英文原话解释:There should never be more than one reason for a class to change.PS:定义中的类包括接口、类和方法。二、举例下面举出一个错误样例:应该把用户信息抽取成一个BO(Business Object, 业务对象),把行为抽取成一个Biz(
Spring Boot Actuator 使用介绍 Spring Boot Actuator 使用介绍初识 Actuator原生端点应用配置类度量指标类操作控制类近期在看《Spring Cloud 微服务实战》,由于时间过去几年,对于Actuator监控端点的介绍过时,故作此文更新一下。Spring Boot 版本:2.5.3初识 Actuator在现有的Spring Boot应用中引入该模块非常简单,只需要在pom.xml的dependencies节点中,新增spring-boot-starter-actuator的依赖即可,具体如下:<