poprabbit

学习如何把牛逼落地


  • 首页

  • 标签

  • 归档

区块链

发表于 2021-05-23 | 更新于: 2021-05-23
区块链的本质一种特殊的分布式数据库。 最大特点区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。 区块区块链由一个个区块(block)组成。区块头(Head):记录当前区块的特征值。区块体(Body):实际数据。 Hash 的不可修改性把区块头的各项特征值,按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希。如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。 采矿由于必须保证节点之间的同步,所以新区块的添加速度不能太快。他的设计是,平均每10分钟,全网才能生成一个新区块。这种产出速度不是通过命令达成的,而是故意设置了海量的计算。 难度系数区块链协议规定,使用一个常量除以难度系数,可以得到目标值(target)。哈希的有效性跟目标值密切相关,只有小于目标值的哈希才是有效的,否则哈希无效,必须重算。Nonce 是一个随机值,矿工的作用其实就是猜出 Nonce 的值。 难度系数的动态调节为了将产出速率恒定在十分钟,中本聪还设计了难度系数的动态调节机制。他规定,难度系数每两周(2016个区块)调整一次。 区块链的分叉现在的规则是,新节点总是采用最长的那条区块链。如果区块链有分叉,将看哪个分支在分叉点后面,先达 ...
阅读全文 »

DevOps

发表于 2021-01-25 | 更新于: 2021-01-25
网络排查工具rpc 依赖底层的通信框架,可以指定端口发布服务(本地启动多个微服务时注意修改端口)。telnet 命令本身就是一个应用层协议,它的作用是在两台主机间,建立一个TCP连接。curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。ssh 登陆 linux 服务器的协议,在 cmd 中也“可以用”。a,b(如云内部服务器)两个网络相互不通1、可以配置负载均衡,将b的某个web服务发布出来,a可访问之;2、可以配置弹性公网ip,这样b的所有端口a都可访问; 命令curl -I 显示 HEAD请求标头curl -d’login=emma&password=123’-X POSTcurl -d ‘{}’ -H ‘Content-Type: application/json’curl -H ‘Referer: https://google.com?q=example'curl -v 显示通讯过程 内网ecs与公网互通策略现象或目标:银联测试环境 可访问 超网服务器出去的公网ip:106.37.214.91EIP:10.200.133.94云内ecs:10.1.132.2:8080 问题及排查思路现在出方向和入方向106.37.214.91 都和 EIP 10.200.133.94 关联了;实际入方向和出方向要分开 ...
阅读全文 »

log

发表于 2021-01-23 | 更新于: 2021-01-23
日志框架的兼容性另一篇文档:https://my.oschina.net/pingpangkuangmo/blog/406618 。 日志facade:编程的时候,对外提供的jar中应该只能引用日志的facade,目前常见的日志facade包有: log4j的日志api,log4j的api与log4j的实现在同一个包中; log4j2的日志api; JCL(Jakarta Common Log)(commons-logging),这个也只是一个api; slf4j(Simple Log Facade for Java) api; 日志实现系统。这些包建议可以只在运行阶段引入(runtime),要不当别人的系统使用的日志实现与你提供的jar使用的不是同一个日志实现的时候,会有问题,可能造成你jar中的日志打印不出来或者报缺少包。目前常见的日志实现包有: log4j的日志实现; log4j2的日志实现; slf4j 的具体实现是logback; JUL 的具体实现在JDK中; 日志接口桥接器(接口转换器):所谓的桥接器就是一个假的日志实现工具, 目前最流行的日志facade是slf4j, 由于历史原因,一些三方包已经使用了其它的日志facade, 比如,早期Spring, Apache引用的都是commons-logging的facade,那为了兼容这些接口,则就 ...
阅读全文 »

git-maven

发表于 2019-09-21 | 更新于: 2021-01-21
git常用命令origin 在 git 里是 远程主机名git status 命令,用来查看发生变动的文件git checkout –b dev 创建并切换分支git merge dev 合并指定分支到当前分支git push origin dev 该分支上的所有本地提交推送到指定的远程分支git checkout -b dev origin/dev 抓取分支:创建远程origin的dev分支到本地(默认的clone 后只有 master分支)git branch –set-upstream-to origin/dev 设置当前分支和origin/dev的链接(否则 git pull 等远程指令会失败)rebase 与 merge要是想要干净的、线性的提交树,使用rebase操作会好一点,这样可以在一条线上看到每一次提交,并且没有增加提交节点。但是如果你想要保存项目完整的历史,并且避免重写公共分支上的 commit,就用merge。git push origin –delete branchname 删除远端分支撤销操作git reset [上次提交] 回退临时提交,工作区保持不变git reset –hard [commit_id] 退回到指定分支git rm –cached [filename] 从暂存 ...
阅读全文 »

internet

发表于 2020-12-29 | 更新于: 2020-12-29
名词 域名、网址、ip地址、MAC地址、socket(主机+端口) 互联网,子网络,网关 以太网协议、广播、ARP协议、IP协议、UDP协议、TCP协议、路由协议、DHCP协议、DNS协议、HTTP协议 上网设置:本机的IP地址、子网掩码、网关的IP地址、DNS的IP地址 互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。 根域名的知识 ICANN 负责管理全世界域名系统的运作。它的一项主要工作,就是规定顶级域名(top level domain,简写为 TLD)(-.com、.net等)。 ICANN 的政策是,每个顶级域名都找一个托管商,该域名的所有事项都由托管商负责。Verisign 是 ICANN 最大的托管商(.com、.net 、.name、.gov)。 根域名: 理论上,所有域名查询都必须先查询根域名,因为只有根域名才能告诉你,某个顶级域名由哪台服务器管理。事实上也确实如此,ICANN 维护着一张列表,里面记载着顶级域名和对应的托管商。由于 根域名列表 很少变化,大多数《 DNS 服务商》都会提供它的缓存,所以根域名的查询事实上不是那么频繁。 DNS 根区: 根域名列表 的正式名称是 DNS 根区(DNS root zone),ICA ...
阅读全文 »

words

发表于 2020-09-14 | 更新于: 2020-09-14
jdkspring registry resolver obtainFresh(BeanFactory) delegate mutable retrieve log omitted eligible idea facets artifacts sql DML(data manipulation language) DDL(data definition language) jmeterredis
阅读全文 »

mybatis

发表于 2020-06-05 | 更新于: 2020-06-21
meituan聊聊MyBatis缓存机制 Mybatis 架构设计与实例分析MyBatis 的框架设计 接口层,和数据库交互的方式 使用传统的MyBatis 提供的API(SqlSession) 使用 Mapper 接口根据 MyBatis 的配置规范配置好后,通过 SqlSession.getMapper(XXXMapper.class) 方法,MyBatis 会根据相应的接口声明的方法信息,通过动态代理机制生成一个 Mapper 实例,我们使用 Mapper 接口的某一个方法时,MyBatis 会根据这个方法的方法名和参数类型,确定 Statement Id,底层还是通过 SqlSession.select(“statementId”,parameterObject);或者 SqlSession.update(“statementId”,parameterObject); 等等来实现对数据库的操作。 数据处理层可以说是MyBatis 的核心,从大的方面上讲,它要完成三个功能: 通过传入参数构建动态SQL语句; SQL语句的执行; 封装查询结果集成List。 框架支撑层事务管理机制, 连接池管理机制,缓存机制, SQL语句的配置方式 引导层 MyBatis 的主要构件及其相互关系 SqlSession 作为MyBatis工作的主要顶层 ...
阅读全文 »

used spring-transaction

发表于 2020-06-07 | 更新于: 2020-06-11
Connection 对象数据库连接 java.sql.Connection 的特性、事务表示、以及和 Java 线程之间的天然关系 Java 事务控制的基本单位(Conection 对象)Connection 实例来表示和数据库的一个连接,通信方式TCP/IP,事务控制方法:commit(),rollback()。 Connection 是宝贵的系统资源(数据库线程数;增加锁竞争的开销)(用连接池管理) 数据库最多支持多少 Connection 连接(mysql 为例) – 查看当前数据库最多支持多少数据库连接show variables like ‘%max_connections%’;– 设置当前运行时mysql的最大连接数,服务重启连接数将还原set GLOBAL max_connections = 200;– 修改 my.ini 或者my.cnf 配置文件max_connections = 200; Connection 对象本身的特性线性操作:即在操作的时序上,事务和事务之间的执行是线性排开依次执行的当建立了 java.sql.Connection 连接后,可以不限次数执行事务SQL请求 如何在 Java 中实现对 Connection 对象的线性操作 Java 多线程访问同一个 java.sql.Connection 会有什么问题? ...
阅读全文 »

分布式

发表于 2020-06-02 | 更新于: 2020-06-02
分布式锁分布式事务分布式锁和分布式事务区别: 锁问题的关键在于进程操作的互斥关系,例如多个进程同时修改账户的余额,如果没有互斥关系则会导致该账户的余额不正确。 而事务问题的关键则在于事务涉及的一系列操作需要满足 ACID 特性,例如要满足原子性操作则需要这些操作要么都执行,要么都不执行。 2PC两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。 本地消息表(最终一致性)本地消息表与业务数据表处于同一个数据库中,这样就能利用本地事务来保证在对这两个表的操作满足事务特性,并且使用了消息队列来保证最终一致性。(分布式事务操作的另一方执行成功,消息才是真正消费成功) CAP 理论分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 在分布式系统中,分区容忍性必不可少,因为需要总是假设网络是不可靠的。因此,CAP 理论实际上是要在可用性和一致性之间做权衡。 Paxos 协议本文摘录自 Paxos协议学习小结BasicPaxos 协议 角色:Proposer(提出者) ,Acceptor(批准者) ,Learner(被告知者); Proposer: 统计投票,发起请求; Acceptor: 比较 ProposalID,提交提案 ...
阅读全文 »

used springcloud

发表于 2020-05-20 | 更新于: 2020-05-20
阅读全文 »
1234
popular rabbit

popular rabbit

java

35 日志
13 标签
0%
© 2021 popular rabbit
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4