Francis
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
gateway

gateway

1 为什么需要网关(1)如果没有网关,各个微服务就需要对外暴露很多端口,访问不方便并且不安全 (2)如果没有网关,很多微服务都需要单独认证授权,比较麻烦 (3)有些微服务使用的是不同的通信协议,如果没有网关,则客户端访问变得很不方便 等等。。。 2 常见的网关产品https://landscape.cncf.io/ 3 Spring Cloud Gateway FeaturesBuilt o
2023-03-18
spring框架 > springcloud > gateway
#java #springcloud #gateway
sentinel入门

sentinel入门

面向分布式、多语言异构化服务架构的流量治理组件 https://sentinelguard.io/zh-cn/ 1 常见的容错方案就以B调用C服务为例,怎样避免B服务因为C服务的不可用而导致自己不可用 超时 ​ 限流 舱壁模式 断路器 https://martinfowler.com/bliki/CircuitBreaker.html 2 快速入门htt
2023-03-18
spring框架 > springcloud > sentinel
#java #springcloud #sentinel
Zookeeper高级特性

Zookeeper高级特性

1 Watchhttps://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#ch_zkWatches 图解: 支持watch的命令 watch的注册基本上都是读事件 12345helpconfig [-c] [-w] [-s]get [-s] [-w] pathls [-s] [-w] [-R] pathstat [-w
2023-03-18
中间件 > Zookeeper
#Zookeeper
sentinel适配开源框架

sentinel适配开源框架

官网:https://sentinelguard.io/zh-cn/docs/open-source-framework-integrations.html 1 开源生态https://github.com/alibaba/Sentinel/wiki/Roadmap 2 适配RestTemplatehttps://github.com/alibaba/spring-cloud-alibaba/w
2023-03-18
spring框架 > springcloud > sentinel
#java #springcloud #sentinel
线程池

线程池

1 实现原理当向线程池提交一个任务之后,线程池的处理流程如下: 判断是否达到核心线程数,若未达到,则直接创建新的线程处理当前传入的任务,否则进入下个流程 线程池中的工作队列是否已满,若未满,则将任务丢入工作队列中先存着等待处理,否则进入下个流程 是否达到最大线程数,若未达到,则创建新的线程处理当前传入的任务,否则交给线程池中的饱和策略进行处理。 2 java中的线程池jdk中提供了线程
2023-03-12
java基础 > 多线程
#多线程 #线程池
Zookeeper初识

Zookeeper初识

官网:https://zookeeper.apache.org/ 1 Zookeeper环境安装1.1 服务端安装启动1.1.1 centos 前置环境 Java8 Maven 下载Zookeeper:3.7.1 https://zookeeper.apache.org/releases.html 1wget https://www.apache.org/dyn/closer.lua/
2023-03-12
中间件 > Zookeeper
#Zookeeper
死锁和ThreadLocal

死锁和ThreadLocal

1 死锁/活锁死锁: 一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。 活锁: 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试—失败—尝试—失败的过程。处于活锁的实体是在不断的改变状态,活锁有可能自行解开。 2 死锁发生的条件 互斥,共享资源 X 和 Y 只能被一个线程占用; 占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共
2023-03-12
java基础 > 多线程
#多线程 #死锁 #ThreadLocal
volatile关键字

volatile关键字

1 一个问题1234567891011121314151617public static void main(String[] args) throws Exception { Thread thread = new Thread(() -> { int i = 0; while(!stop) { i++;
2023-03-12
java基础 > 多线程
#多线程 #volatile关键字
并发工具类以及AQS

并发工具类以及AQS

1 AQS谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer。 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,是同步类的最核心的一个类,如常用的ReentrantLock/Semaphore/CountDownLatch…。 1.1 整体框架 它维护
2023-03-12
java基础 > 多线程
#多线程 #并发工具类 #AQS
锁-synchronized

锁-synchronized

互斥锁的本质是共享资源。 1 锁的使用可以修饰在方法层面和代码块层面 synchronized有三种方式来加锁,不同的修饰类型,代表锁的控制粒度: 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 锁是在对象头中存储。 2
2023-03-12
java基础 > 多线程
#多线程 #synchronized
1…111213141516

搜索

Hexo Fluid