CPU使用率过高排查

  |   0 评论   |   0 浏览

1.使用top命令查询Java进程 代码块 SQL top 定位到java进程为369 2.通过top命令定位进程包含的线程信息 代码块 SQL top -H -p 369 -d 1 -n3 查询到线程占用率最高的线程PID 为672 3.通过jstack命令查询线程堆栈 jstack 下的NID为16进制,672对应的16进制为223 代码块 SQL jstack -l 369|grep -A 20 "223" 结果内容为: 至此,可以根据代码去定位问题

UML常见图形

  |   0 评论   |   0 浏览

结构型 1.用例图 用例图参考: 建立用例模型首先要确定角色(Actors),Actors表示提供或接收系统信息的人或系统,他们是与系统有交互作用的人或事务,代表一个系统的使用者或外部通信的目标。用例是系统中的一个功能单元,可以被描述为参与系统之间的一次交互作用。用例模型的用途是列出系统中的用例和参与者,并且显示哪个是用例的执行。 2.组件图(构件图) 是用来反映代码的物理结构。从组件图中,您可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。 3.部署图 也叫做实施图,描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。可以了解软件和硬件的物理关系以及处理节点的组件分布情况,传达了构成应用程序的硬件和软件元素的配置和部署方式。一个部署图描述了一个运行时的硬件节点,以及在这些节点上运行的软件组件的静态视图。 4.类图 类图通过显示系统的类和它们之间的关系来概述系统。类图是静态的 - 它们显示出什么交互,但不会发生什么交互。 那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属....

AWK命令分析

  |   0 评论   |   0 浏览

模式与操作 模式 模式可以是以下任意一种: 正则表达式:使用通配符的扩展集 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试 模式匹配表达式:用运算符~(匹配)和~!不匹配 BEGIN 语句块, pattern语句块, END语句块 awk常见命令 NF NF表示字段数量,通过分隔符分割后有多少个字段 代码块 Plain Text printf "1:2:3:4:5:4" | awk -F ":" NF==6'{print $0}' 1:2:3:4:5:4 FS FS表示输入字段分隔符,默认为空格 代码块 Plain Text printf "we are you " | awk 'BEGIN{FS="\t"} {print $1, $2, $3}' we are you RS RS 记录分隔符变量 $n : 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。 $0 : 这个变量包含执行过程中当前行的文本内容。 ARGC : 命令行参数的数目。 ARGIND : 命令行中当前文件的位置(从0开始算)。 ARGV : 包含命令行参数的数组。 CON....

分享-WEB前端安全

  |   0 评论   |   0 浏览

浏览器的同源策略 1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。 最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"。 协议相同 域名相同 端口相同 举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略)。它的同源情况如下。 http://www.example.com/dir2/other.html:同源 http://example.com/dir/other.html:不同源(域名不同) http://v2.www.example.com/dir/other.html:不同源(域名不同) http://www.example.com:81/dir/other.html:不同源(端口不同) 目的:同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。 限制范围 (1) Cookie、LocalStorage 和 IndexDB 无法读....

LeedCode-SQL-连续出现的数字

  |   0 评论   |   0 浏览

题目描述 编写一个 SQL 查询,查找所有至少连续出现三次的数字。 +----+-----+ | Id | Num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 1 | | 6 | 2 | | 7 | 2 | +----+-----+ 例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。 +-----------------+ | ConsecutiveNums | +-----------------+ | 1 | +-----------------+ 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/consecutive-numbers 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 解法 思路就是多表连接,根据id自增的关系进行判断 select distinct a.Num as ConsecutiveNums from Logs a left join Logs b on a.id+1=b.id left....

LeedCode-SQL-分数排名

  |   0 评论   |   0 浏览

题目描述 编写一个 SQL 查询来实现分数排名。 如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。 +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+ 例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列): +-------+------+ | Score | Rank | +-------+------+ | 4.00 | 1 | | 4.00 | 1 | | 3.85 | 2 | | 3.65 | 3 | | 3.65 | 3 | | 3.50 | 4 | +-------+------+ 解法 这个问题分为两部分来看 所有的分数按由大到小的顺序排序 针对排好的分数,给出排名 那第一部分,写出来很轻松 `select Score from Sco....

LeedCode-有效的括号

  |   0 评论   |   0 浏览

题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true 解法 1. 采用Java提供的工具类 利用Java提供的工具类String.contains() 判断是否存在 {}, [], (),如果存在,利用String.replace() 替换为空字符串 代码如下: public boolean isValid(String s) { if (s.length() <= 0) { return true; } while (s.contains("{}") || s.contains("[]") || s.contains("()")) { s = s.r....

Java 14 新特性

  |   0 评论   |   0 浏览

发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进。 但是,Oracle还向您提供Java的较旧版本,因为它具有向后兼容性,因此您以前的代码仍可以在较旧的版本上运行,并且Java 14的语法与Java 8或9并不是完全不同的,它只是新版本 对前一个进行了一些改进 1. switch表达式优化 Switch Expression (JEP 361) 一直以来,Java都是使用类C++、C的switch表达式,在Java 12,13中对switch表达式做了一些优化,作为预览版本引入,直到Java14正式引入进来。 让我们来看一下,在Java 14之前如何写switch表达式。 tags.switch (day) { case 1: System.out.println("Let's meet!"); break; case 2: break; case 3: System.out.println("Let's meet!"); break; case 4: break; case 5: System.out.println("Let's....

LeedCode-longest common prefix

  |   0 评论   |   0 浏览

1.题目描述 Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string "". Example 1: Input: ["flower","flow","flight"] Output: "fl" Example 2: Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings. Note: All given inputs are in lowercase letters a-z. 题目的意思就是求最长公共前缀。 2.解法 思路就是用第一个字符串(定义为 first)跟其他字符串去比较。是否存在最长公共前缀,开始先假定公共字符串是first,判断是否是其他字符串里的前缀,不匹配时,first减少一个字符,继续比较,当f....

LeedCode-Roman To Integer

  |   0 评论   |   0 浏览

题目描述 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, two is written as II in Roman numeral, just two one's added together. Twelve is written as, XII, which is simply X + II. The number twenty seven is written as XXVII, which is XX + V + II. Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV.....

LeedCode-Reverse Integer

  |   0 评论   |   0 浏览

1.题目描述 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 2. 解法 很基础的做法,通过除法,取余找到每位的数字进行反转 public int reverse(int x) { long n = 0; while(x != 0) { n = n * 10 + x % 10; x = x / 10; } return (int)n==n? (int)n:0; } 运行结果:

LeetCode-Palindrome Number

  |   0 评论   |   0 浏览
  1. 题目描述 Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: true Example 2: Input: -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome. Example 3: Input: 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome. 2. 解题思路 2.1 先反转数字,再判断是否相等 负数是不可能回文的,直接返回false 把数字反转,跟原来的值比较是否相等 class So....

Git 初始化仓库

  |   0 评论   |   0 浏览

If you already have code ready to be pushed to this repository then run this in your terminal. cd existing-project git init git add --all git commit -m "Initial Commit" git remote add origin ssh://git@git.xxx.com/cyhy/xxxx.git git push origin master If your code is already tracked by Git then set this repository as your origin to push to. cd existing-project git remote set-url origin ssh://git@git.xxx.com/cyhy/xxxx.git git push origin master All done with the commands?

程序员应该读的书

  |   0 评论   |   0 浏览

文章链接:https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read 《代码大全》 《程序员修炼之道》 《计算机的构造和解释》 《算法导论》 《设计模式》 《重构》 《人月神话》 《代码整洁之道》 《Effective C++》、《More Effective C++》 《Unix 编程艺术》、《Unix 高级环境编程》 待完善... 练级攻略: 编程语言 理论学科 系统知识 软件设计 Linux 系统、内存、网络 异步 I/O 模型和 Lock-Free 编程 Java 基层知识 数据库 分布式架构入门 微服务 容器化和自动化运维 前端基础和底层原理 前端性能优化和框架 UI/UX 设计

美团服务治理系统OCTO2.0的探索与实践【转】

  |   0 评论   |   0 浏览

根据美团下一代服务治理系统 OCTO2.0 的探索与实践整理总结而来 一、OCTO现状 OCTO 是美团标准化的服务治理基础设施,治理能力统一、性能及易用性表现优异、治理能力生态丰富,已广泛应用于美团各事业线。但是存在一些问题: 对多语言支持不够好。 美团技术栈使用的语言主要是 Java,占比到达80%以上,上面介绍的诸多治理能力也集中在 Java 体系。 但美团同时还有其他近10种后台服务语言在使用,这些语言的治理生态均十分薄弱,同时在多元业务的模式下必然会有增长的多语言需求,为每一种语言都建设一套完善的治理体系成本很高,也不太可能落地。 中间件和业务绑定在一起,制约着彼此迭代。 一般来说,核心的治理能力主要由通信框架承载,虽然做到了逻辑隔离,但中间件的逻辑不可避免会和业务在物理上耦合在一起。这种模式下,中间件引入Bug需要所有业务配合升级,这对业务的研发效率也会造成损害;新特性的发布也依赖业务逐个升级,不具备自主的控制能力。 异构治理体系技术融合成本很高。 治理决策比较分散。 每个节点只能根据自己的状态进行决策,无法与其他节点协同仲裁。 针对以上痛点,我们考虑依托于 Service....

什么是Service Mesh

  |   0 评论   |   0 浏览

一言以蔽之:Service Mesh是微服务时代的TCP协议。 微服务的定义 微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与***语言无关*** (Language-Independent/Language agnostic) 的 API 集相互通信。 第一代微服务 在TCP出现之后,机器之间的网络通信不再是一个难题,以GFS/BigTable/MapReduce为代表的分布式系统得以蓬勃发展。这时,分布式系统特有的通信语义又出现了,如熔断策略、负载均衡、服务发现、认证和授权、quota限制、trace和监控等等,于是服务根据业务需求来实现一部分所需的通信语义。 第二代微服务 为了避免每个服务都需要自己实现一套分布式系统通信的语义功能,随着技术的发展,一些面向微服务架构的开发框架出现了,如Twitter的Finagle、Facebook的Proxygen以及Spring Cloud等等,这些框架实现了分布式系统通信需要....