java Spring Cloud服务注册组件Eureka(上)-单机版Eureka注册中心

一、Eureka是什么

Eureka是Spring Cloud中用于服务注册与发现的组件,类似于Zookeeper

二、Eureka中的组成

Eureka的组成三种角色

1.Eureka Server

即Eureka服务端,是服务注册中心

2.Eureka Client

即Eureka客户端,包括服务提供者(服务生产者)和服务消费者(服务调用者)

(1) 客户端操作
  • 注册服务(register):向注册中心注册服务(向注册中心报告

java Spring Cloud简介及与Dubbo的比较

一、Spring Cloud的介绍

Spring Cloud是一个基于Spring Boot的完整的微服务框架,它是一个工具箱,而不是一门具体的技术

1.Sprig Cloud各组件在微服务中的角色

Sprig Cloud各组件在微服务中的角色

  • 1、请求统一通过API网关(Zuul)来访问内部服务.
  • 2、网关接收到请求后,从注册中心(Eureka)获取可用服务
  • 3、由Ribbon进行均衡负载后,分发到后端具体实例
  • 4、微服务之间通过Feign进行通

java 什么是微服务

微服务是近三年来最流行的一种WEB技术,那么什么是微服务呢,我们先看WEB发展的历史轨迹

一、WEB架构的发展历程

1.单体应用
  • WEB的各个组件都安装到一台机器上,很典型的WEB站点,像我的个人博客、小公司的企业网站等

单体应用

优点:

  • 只需要一台机器,部署比较简单,而且成本较低
  • 维护成本低

缺点:

  • 各个WEB组件共享系统资源,其中一个组件的性能会影响其他组件的性能
  • 应用内部的各个子服务耦合度,即各子服务

计算机基础 通过JAVA实现堆(优先队列)的数据结构

一、什么是堆

我们日常生活中经常见到各种堆,比如冬天的雪堆,施工的土堆,都是下面大,上面尖顶的样子,那么数据结构中的堆与日常生活中的堆有哪些异同呢?

日常生活中的堆与数据结构中的堆

1.堆的性质
  • 堆是一个完全二叉树(除了最后一层,其他层从左到右的节点都是满的)
  • 堆中的节点,都大于等于或小于等于其子节点
  • 堆通常使用数组来存储
2.堆的分类
  • 大顶堆
    • 所有节点大于或等于其子节点

大顶堆

  • 小顶堆
    • 所有节点大于或小于其子节点

小顶堆

二、通过数组实

计算机基础 Java数据结构之HashMap的使用及实现原理解读

HashMap是一种以key-value键值对为节点的数据集合

一、HashMap的使用

1.HashMap与其他集合数据结构的关系
(1)HashMap与其他集合的继承关系

HashMap与其他集合数据结构的关系

(2)HashMap所包含的方法

HashMap实现的方法

2.HashMap遍历元素的方式
(1)通过遍历表的所有key,再通过key来获取值
  • 适合场景:只需要获取表的key的情况
  1. Map<Integer, String> userMap =

计算机基础 使用JAVA实现散列的数据结构

一、散列

散列是为了解决快速插入和快速查找的功能,它是基于数组+链表来实现的

1.散列结构

散列结构

  • 散列的节点:实际存储的节点
  • 散列函数:hash函数,它通过一定的算法将所存储节点的key转化为一个整数,我们可以根据这个计算出来的整数值来确定它应该存储到散列表的什么位置
  • 散列表:用于存放一系列散列节点的表

注:我们通过key计算出其hashCode值,但不同的key可能其hashCode值相同,这就是所谓的h

计算机基础 B树和B+树数据结构以及B树在MySQL索引中的使用说明

一、二叉树到多叉树

1.二叉树的劣势
  • 二叉树每个节点至多只有两个子节点,如果整个数据比较大,那么我们的树的深度(高度)将非常大,无论对于插入或者删除,速度将会变得比较缓慢
2.多叉树(多路搜索树)

注:多叉树并不是专业的叫法,这里只是为了更好的理解

多路搜索树结构

M阶多路搜索树

  • 每个节点至多M个子节点

二、B树和B+树

1.B树即B-tree

注:这里的B是Balance

(1)B树的性质

B树又叫多路平衡查找树,其

计算机基础 java数据结构之基于红黑树的TreeMap的使用及实现解读

一、红黑树说明

1.红黑树的结构

红黑树是一种特殊的二叉树,它有以下性质:

  • 每一个节点或着成红色,或着成红色
  • 根是黑色的
  • 如果一个节点是红色的,那么它的子节点必须是黑色的(如果这个节点是叶子节点,即没有子节点,不需要满足这个条件,这是在有子节点的情况下)
  • 从根节点到叶子节点的每一条路径必须包含相同数目的黑色节点

红黑树的结构

2.将普通二叉树变成红黑树
  • 将节点着色或改变颜色
  • 将节点进行旋转操作

二、TreeMap的使用

计算机基础 树形结构说明及使用java实现二叉树

一、树形结构的必要性

1.数组列表和链表优势与劣势的比较
数据结构名称 优势 劣势
数组(包括数组列表) 访问数据快 插入节点或删除节点慢(移动节点代价大)
链表 插入节点或删除节点快(修改指针即可) 访问数据慢(需要遍历)
2.树的优势
  • 插入或删除节点快
  • 访问元素快

它只是将插入或删除节点和访问节点的性能要求做了一个平衡

二、树形结构概述

1.树形结构

树形结构

根据日常生活中的树,我们可

计算机基础 Java数据结构之队列Queue的使用及实现原理解读

一、Java集合中实现队列Queue的两种形式

  • ArrayDeque:基于数组实现的队列
  • LinkedList:基于链表实现的队列

二、ArrayDeque的使用及实现

  • ArrayDeque是一个双端队列,即它可以在两端插入或删除,也普通的队列有所区别
1.ArrayDeque与其他集合接口的关系

ArraDequeue与其他结构的关系

2.ArrayQueue的使用及实现解读
(1)属性
  • elements : 存放元素的对象数组
  • head