stringutils 用哪个包 apache spring_spring整合mq、jsonp跨越、httpclient工具的使用

训练大纲(第087天)

大家如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。确保老师课堂上做的操作,反复练习直到熟练。

第173次(ActiveMQ)

学习主题:ActiveMQ

学习目标:

1 掌握什么是spring整合mq

2 掌握jsonp

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

Spring整合ActiveMQ

需求:

1)在 producer 中创建 Users 对象

2)将 Users 对象传递到 ActiveMQ 中

3)在 Consumer 中获取 Users 对象并在控制台打印

  1. Spring整合ActiveMQ-创建生产者
    1. Spring整合ActiveMQ创建消息生产者时需要添加哪些依赖?

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>com.bjsxt</groupId>

<artifactId>parent</artifactId>

<version>0.0.1-SNAPSHOT</version>

</parent>

<groupId>com.bjsxt</groupId>

<artifactId>spring-activemq-producer</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>war</packaging>

<dependencies>

<!-- ActiveMQ客户端完整jar包依赖 -->

<dependency>

<groupId>org.apache.activemq</groupId>

<artifactId>activemq-all</artifactId>

</dependency>

<!-- ActiveMQ和Spring整合配置文件标签处理jar包依赖 -->

<dependency>

<groupId>org.apache.xbean</groupId>

<artifactId>xbean-spring</artifactId>

</dependency>

<!-- Spring-JMS插件相关jar包依赖 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jms</artifactId>

</dependency>

<dependency>

<groupId>org.apache.activemq</groupId>

<artifactId>activemq-pool</artifactId>

</dependency>

<dependency>

<groupId>org.apache.activemq</groupId>

<artifactId>activemq-jms-pool</artifactId>

</dependency>

<!-- 单元测试 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

</dependency>

<!-- 日志处理 -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</dependency>

<!-- spring -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

</dependency>

<!-- JSP相关 -->

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jsp-api</artifactId>

<scope>provided</scope>

</dependency>

</dependencies>

<build>

<plugins>

<!-- 配置Tomcat插件 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<configuration>

<path>/</path>

<port>8080</port>

</configuration>

</plugin>

</plugins>

</build>

</project>

  1. 如何在Spring中配置消息生产者?写出步骤
  1. 创建 spring-activemq-producer
  2. 修改 POM 文件
  3. 整合 ActiveMQ

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jms="http://www.springframework.org/schema/jms"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:amq="http://activemq.apache.org/schema/core"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/jms

http://www.springframework.org/schema/jms/spring-jms.xsd

http://activemq.apache.org/schema/core

http://activemq.apache.org/schema/core/activemq-core.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<!-- 需要创建一个连接工厂,连接ActiveMQ. ActiveMQConnectionFactory. 需要依赖ActiveMQ提供的amq标签 -->

<!-- amq:connectionFactory 是bean标签的子标签, 会在spring容器中创建一个bean对象. 可以为对象命名.

类似: <bean id="" class="ActiveMQConnectionFactory"></bean> -->

<amq:connectionFactory brokerURL="tcp://192.168.240.134:61616"

userName="admin" password="admin" id="amqConnectionFactory" />

<!-- 配置池化的ConnectionFactory。 为连接ActiveMQ的connectionFactory提供连接池 -->

<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactoryBean">

<property name="connectionFactory" ref="amqConnectionFactory"></property>

<property name="maxConnections" value="10"></property>

</bean>

<!-- spring管理JMS相关代码的时候,必须依赖jms标签库. spring-jms提供的标签库. -->

<!-- 定义Spring-JMS中的连接工厂对象 CachingConnectionFactory - spring框架提供的连接工厂对象.

不能真正的访问MOM容器. 类似一个工厂的代理对象. 需要提供一个真实工厂,实现MOM容器的连接访问. -->

<!-- 配置有缓存的ConnectionFactory,session的缓存大小可定制。 -->

<bean id="connectionFactory"

class="org.springframework.jms.connection.CachingConnectionFactory">

<property name="targetConnectionFactory" ref="amqConnectionFactory"></property>

<property name="sessionCacheSize" value="3"></property>

</bean>

<!-- JmsTemplate配置 -->

<bean id="template" class="org.springframework.jms.core.JmsTemplate">

<!-- 给定连接工厂, 必须是spring创建的连接工厂. -->

<property name="connectionFactory" ref="connectionFactory"></property>

<!-- 可选 - 默认目的地命名 -->

<property name="defaultDestinationName" value="test-spring"></property>

</bean>

</beans>

  1. Spring整合ActiveMQ-创建消费者
    1. Spring整合ActiveMQ创建消息消费者时需要添加哪些依赖?

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>

<groupId>com.bjsxt</groupId>

<artifactId>parent</artifactId>

<version>0.0.1-SNAPSHOT</version>

</parent>

<groupId>com.bjsxt</groupId>

<artifactId>spring-activemq-consumer</artifactId>

<version>0.0.1-SNAPSHOT</version>

<dependencies>

<!-- activemq客户端 -->

<dependency>

<groupId>org.apache.activemq</groupId>

<artifactId>activemq-all</artifactId>

</dependency>

<!-- spring框架对JMS标准的支持 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jms</artifactId>

</dependency>

<!-- ActiveMQ和spring整合的插件 -->

<dependency>

<groupId>org.apache.xbean</groupId>

<artifactId>xbean-spring</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

</dependency>

</dependencies>

</project>

  1. 如何在Spring中配置消息消费者?写出步骤

1.创建 spring-activemq-consumer

是一个 jar 工程

2. 修改 POM 文件

3. 整合 ActiveMQ

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jms="http://www.springframework.org/schema/jms"

xmlns:amq="http://activemq.apache.org/schema/core"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/jms

http://www.springframework.org/schema/jms/spring-jms.xsd

http://activemq.apache.org/schema/core

http://activemq.apache.org/schema/core/activemq-core.xsd">

<!-- 需要创建一个连接工厂,连接ActiveMQ. ActiveMQConnectionFactory. 需要依赖ActiveMQ提供的amq标签 -->

<!-- amq:connectionFactory 是bean标签的子标签, 会在spring容器中创建一个bean对象. 可以为对象命名.

类似: <bean id="" class="ActiveMQConnectionFactory"></bean> -->

<amq:connectionFactory brokerURL="tcp://192.168.70.151:61616"

userName="admin" password="admin" id="amqConnectionFactory" />

<!-- spring管理JMS相关代码的时候,必须依赖jms标签库. spring-jms提供的标签库. -->

<!-- 定义Spring-JMS中的连接工厂对象 CachingConnectionFactory - spring框架提供的连接工厂对象.

不能真正的访问MOM容器. 类似一个工厂的代理对象. 需要提供一个真实工厂,实现MOM容器的连接访问. -->

<bean id="connectionFactory"

class="org.springframework.jms.connection.CachingConnectionFactory">

<property name="targetConnectionFactory" ref="amqConnectionFactory"></property>

<property name="sessionCacheSize" value="3"></property>

</bean>

<!-- 注册监听器 -->

<!-- 开始注册监听. 需要的参数有: acknowledge - 消息确认机制 container-type - 容器类型 default|simple

simple:SimpleMessageListenerContainer最简单的消息监听器容器,只能处理固定数量的JMS会话,且不支持事务。 default:DefaultMessageListenerContainer是一个用于异步消息监听器容器

,且支持事务 destination-type - 目的地类型. 使用队列作为目的地. connection-factory - 连接工厂, spring-jms使用的连接工厂,必须是spring自主创建的

不能使用三方工具创建的工程. 如: ActiveMQConnectionFactory. -->

<jms:listener-container acknowledge="auto"

container-type="default" destination-type="queue" connection-factory="connectionFactory">

<!-- 在监听器容器中注册某监听器对象. destination - 设置目的地命名 ref - 指定监听器对象 -->

<jms:listener destination="test-spring" ref="myListener" />

</jms:listener-container>

</beans>

  1. Jsonp介绍
    1. 什么是Jsonp?

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站) 那获取资料,即跨域读取数据。

为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?

这是因为同源策略。

  1. Jsonp的优缺点是什么?

JSONP 的优点是:它不像 XMLHttpRequest 对象实现的 Ajax 请求那样受到同源策略的 限制;它的兼容性更好,在更加古老的浏览器中都 可以运行,不需要 XMLHttpRequest 或 ActiveX 的支持;并且在请求完毕后可以通过调用 callback 的方式回传结果。 JSONP 的缺点则是:它只支持 GET 请求而不支持 POST 等其它类型的 HTTP 请求;它只支持跨域 HTTP 请求这种情况,不能解决不同域的两个页面之间如何进行 JavaScript 调用 的问题。

  1. 什么是跨域?

跨域是指一个域(网站)下的文档或脚本试图去请求另一个域(网站)下的资源。

  1. 什么是同源策略?

同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 1995 年引入浏览器, 它是浏览器最核心也最基本的安全功能,现在所有支持 JavaScript 的浏览器都会使用这个策 略。如果缺少了同源策略,浏览器很容易受到 XSS、CSFR 等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

第174次(jsonp和httpclient)

学习主题:ActiveMQ

学习目标:

1 掌握jsonp跨域

2 掌握httpclient工具的使用

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

  1. 搭建跨域环境
    1. 创建两个项目作为跨域环境。

2d0e9fa1ed7030e7665b91f62c9521f4.png
  1. 使用JsonP实现跨域
    1. 写出使用Jsonp完成跨域处理的实现步骤

在 ajax 中请求方式有所改变

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<script type="text/javascript" src="/js/jquery-1.7.2.js"></script>

<script type="text/javascript">

$(function() {

$("#but").click(

function() {

$.ajax({

type : "get",

url : "http://localhost:9090/user/findUser",

dataType : "jsonp",

jsonp : "callback",

success : function(data) {

alert(data);

var str = "";

for (i = 0; i < data.length; i++) {

str += data[i].userid + " " + data[i].username

+ " " + data[i].userage + " ";

}

$("#show").html(str);

}

});

});

});

</script>

</head>

<body>

<span id="show"></span>

<input type="button" value="ok" id="but" />

</body>

</html>

  1. MappingJacksonValue的使用
    1. 在Controller中使用MappingJacksonValue实现跨域响应

package com.bjsxt.web.controller;

import java.util.ArrayList;

import java.util.List;

import org.springframework.http.converter.json.MappingJacksonValue;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.bjsxt.commons.JsonUtils;

import com.bjsxt.pojo.Users;

@Controller

@RequestMapping("/user")

public class UserController {

@RequestMapping("/findUser")

@ResponseBody

public Object findUser(String callback){

Users user = new Users(1, "admin", 20);

Users user1 = new Users(2, "zhangsan", 22);

Users user2 = new Users(3, "lisi", 24);

List<Users> list = new ArrayList<>();

list.add(user);

list.add(user1);

list.add(user2);

//json转换

/*String json = JsonUtils.objectToJson(list);*/

MappingJacksonValue mv = new MappingJacksonValue(list);//json转换

mv.setJsonpFunction(callback);//字符串list和callback拼接

return mv;

}

}

  1. 什么是HttpClient
    1. 什么是HttpClient?

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、 功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和 建议。

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net 包中已经提 供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能 还不够丰富和灵活

  1. HttpClient发送Get请求不带参数
    1. 如何通过HttpClient发送Get请求且不带参数?

package com.bjsxt.test;

import java.io.IOException;

import org.apache.http.HttpEntity;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

public class HttpClientTest {

public static void main(String[] args) throws Exception {

HttpClientTest.doGet();

}

/**

* get请求不带参数

*

* @throws Exception

* @throws ClientProtocolException

*/

public static void doGet() throws Exception {

// 创建HttpClient对象

CloseableHttpClient client = HttpClients.createDefault();

// 创建get请求对象。在请求中输入url

HttpGet get = new HttpGet("http://www.baidu.com");

// 发送请求并返回响应

CloseableHttpResponse res = client.execute(get);

// 处理响应

// 获取响应的状态码

int code = res.getStatusLine().getStatusCode();

System.out.println(code);

// 获取响应的内容

HttpEntity entity = res.getEntity();

String content = EntityUtils.toString(entity, "utf-8");

System.out.println(content);

// 关闭链接

client.close();

}

}

  1. HttpClient发送Get请求带参数
    1. 如何通过HttpClient发送Get请求并且带参数?

/**

* Get 请求带参数

* @throws Exception

*/

public static void doGetParam() throws

Exception{

CloseableHttpClient client =

HttpClients.createDefault();

//创建一个封装 URI 的对象。在该对象中可以给定请

求参数

URIBuilder bui = new

URIBuilder("https://www.sogou.com/web");

bui.addParameter("query", "西游记");

//创建一个 Get 请求对象

HttpGet get = new HttpGet(bui.build());

//发送请求,并返回响应

CloseableHttpResponse res =

client.execute(get);

//处理响应

//获取响应的状态码

int code =

res.getStatusLine().getStatusCode();

System.out.println(code);

//获取响应的内容

HttpEntity entity = res.getEntity();

String content =

EntityUtils.toString(entity,"utf-8");

System.out.println(content);

//关闭连接

client.close();

}

  1. HttpClient发送POST请求不带参数
    1. 如何通过HttpClient发送Post请求且不带参数?

/**

* 发送 POST 请求不带参数

*/

public static void doPostTest()throws

Exception{

CloseableHttpClient client =

HttpClients.createDefault();

HttpPost post = new

HttpPost("http://localhost:8080/test/post");

CloseableHttpResponse res =

client.execute(post);

//处理响应

//获取响应的状态码

int code =

res.getStatusLine().getStatusCode();

System.out.println(code);

//获取响应的内容

HttpEntity entity = res.getEntity();

String content =

EntityUtils.toString(entity,"utf-8");

System.out.println(content);

//关闭连接

client.close();

}

  1. HttpClient发送POST请求带参数
    1. 如何通过HttpClient发送Post请求并且带参数?

/**

* 发送 POST 请求带参数

*/

public static void doPostParamTest()throws

Exception{

CloseableHttpClient client =

HttpClients.createDefault();

HttpPost post = new

HttpPost("http://localhost:8080/test/post/param");

//给定参数

List<BasicNameValuePair> list = new

ArrayList<>();

list.add(new BasicNameValuePair("name", "张

三丰"));

list.add(new BasicNameValuePair("pwd",

"zhangsanfeng"));

//将参数做字符串的转换

StringEntity entity = new

UrlEncodedFormEntity(list,"utf-8");

//向请求中绑定参数

post.setEntity(entity);

//处理响应

CloseableHttpResponse res =

client.execute(post);

//获取响应的状态码

int code =

res.getStatusLine().getStatusCode();

System.out.println(code);

//获取响应的内容

HttpEntity en = res.getEntity();

String content =

EntityUtils.toString(en,"utf-8");

System.out.println(content);

//关闭连接

client.close();

}

  1. HttpClient发送POST请求带Json格式参数
    1. 如何通过HttpClient发送Post请求并且带Json格式参数?

/**

* 发送 POST 请求带 JSON 格式参数

*/

public static void doPostParamJsonTest()throws

Exception{

CloseableHttpClient client =

HttpClients.createDefault();

HttpPost post = new

HttpPost("http://localhost:8080/test/post/param/js

on");

String json ="{"name":"张三丰

","pwd":"zhangsanfeng"}";

StringEntity entity = new StringEntity(json,

ContentType.APPLICATION_JSON);

//向请求中绑定参数

post.setEntity(entity);

//处理响应

CloseableHttpResponse res =

client.execute(post);

//获取响应的状态码

int code =

res.getStatusLine().getStatusCode();

System.out.println(code);

//获取响应的内容

HttpEntity en = res.getEntity();

String content =

EntityUtils.toString(en,"utf-8");

System.out.println(content);

//关闭连接

client.close();

}

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几种Java常用序列化框架的选型与对比

简介&#xff1a; 序列化与反序列化是我们日常数据持久化和网络传输中经常使用的技术&#xff0c;但是目前各种序列化框架让人眼花缭乱&#xff0c;不清楚什么场景到底采用哪种序列化框架。本文会将业界开源的序列化框架进行对比测试&#xff0c;分别从通用性、易用性、可扩展性…

12v小型电机型号大全_电动机型号参数大全,再也不怕看不懂电机型号了

电动机型号是便于使用、设计、制造等部门进行业务联系和简化技术文件中产品名称、规格、型式等叙述而引用的一种代号。下面为大家介绍电动机型号含义等信息。1电动机型号组成及含义由电机类型代号、电机特点代号、设计序号和励磁方式代号等四个小节顺序组成。1、类型代号是表征…

基于DataWorks搭建新零售数据中台

文章作者&#xff1a;许日&#xff08;欢伯&#xff09;&#xff0c;在2016年盒马早期的时候&#xff0c;转到盒马事业部作为在线数据平台的研发负责人&#xff0c;现任阿里云计算平台DataWorks建模引擎团队负责人。 文章简介&#xff1a;本篇文章向大家分享新零售企业如何基于…

身份云平台 Authing 完成 2300 万美元 A 轮融资

10 月 24 日&#xff0c;身份云平台 Authing 宣布完成 2300 万美元 A 轮融资。本轮融资由老虎环球基金领投&#xff0c;鼎晖VGC&#xff08;创新与成长基金&#xff09;、声网 Agora、老股东 GGV纪源资本和奇绩创坛跟投&#xff0c;跃为资本担任独家财务顾问。Authing 表示&…

大数据计算存储资源池_管家实践:轻松玩转大数据计算服务

以下是直播内容精华整理&#xff0c;主要包括以下四个方面&#xff1a;1.背景速览&#xff1b;2.功能介绍&#xff1b;3.案例讲解&#xff1b;4.新功能预告。一、背景速览MaxCompute(原ODPS)是一项大数据计算服务&#xff0c;它能提供快速、完全托管的PB级数据仓库解决方案&…

客如云数据中台建设

简介&#xff1a; 本次分享介绍客如云如何利用阿里云大数据产品来建设数据中台。 客如云是2012年成立的一家公司&#xff0c;覆盖餐饮、零售、美业&#xff0c;还有其他的业态以及服务的一家综合性的SaaS公司。到2020年为止&#xff0c;客如云已经服务了60万商家&#xff0c;帮…

微博机器学习平台云上最佳实践

简介&#xff1a; 本文讲述了微博机器学习平台和深度学习平台的业务功能和云上实践&#xff0c;剖析了阿里云大数据在微博这两大学习平台的架构建设上所起到的作用。 作者&#xff1a;新浪微博数据计算平台系统架构师 曹富强 本文讲述了微博机器学习平台和深度学习平台的业务功…

搞懂异地多活,看这篇就够了

来源&#xff1a;水滴与银弹作者&#xff1a;Kaito阅读本文大约需要 20 分钟。你好&#xff0c;我是 Kaito。在软件开发领域&#xff0c;「异地多活」是分布式系统架构设计的一座高峰&#xff0c;很多人经常听过它&#xff0c;但很少人理解其中的原理。异地多活到底是什么&…

搭建一个微服务商城到底可以有多快?

简介&#xff1a; 极速部署一个微服务电商商城&#xff0c;体验 Serverless 带给您的应用全托管体验。 作者&#xff1a;云原生技术运营 - 望宸 技术实践的门槛不仅在于应用上线后各类问题的排查难度&#xff0c;也在于搭建一个 Demo 应用时的复杂度。 今天我们尝试 3 种方法来…

分享2种规划思维和4个规划方法

简介&#xff1a; 为结果买单&#xff0c;为过程鼓掌。 作者&#xff1a;不拔 每年各个部门都要进行规划&#xff0c;规划能让目标更聚焦&#xff0c;让我们清晰地知道今后我们要做什么、如何去做。并非每个人都会参与规划中去&#xff0c;但需要掌握规划的方法&#xff0c;否…

apache 统计404日志_Apache监控与调优(四)Apachetop监控

除了使用status监控外&#xff0c;还可以使用第三方软件来监控。现在使用的最多的第三方监控软件是apachetop。虽然我们使用status也可以监控到很多信息&#xff0c;但是对于一些统计信息来说&#xff0c;例如统计哪些URL的访问量最大&#xff0c;不同状态码下分别有多少个HTTP…

揭秘 | 2021年移动云API大赛决赛大奖花落谁家?

10月21日&#xff0c;2021年移动云API应用创新开发大赛决赛暨移动云开发者论坛&#xff0c;在苏州圆满举办。现场&#xff0c;移动云开发者社区重磅发布首批MVP名单&#xff0c;同时公布2021年API创新开发大赛决赛获奖名单。中国移动、英特尔、CSDN、PingCAP、各参赛团队等技术…

冷热分离之OTS表格存储实战

简介&#xff1a; 为什么要冷热分离由于2020疫情的原因&#xff0c;在线教育行业提前被大家所重视&#xff0c;钉钉教育已经服务超过21万所学校、700万教师和1.4亿学生用户&#xff0c;每天大量的教育数据产生。整体数据量&#xff1a;随着时间的积累&#xff0c;数据量越来直大…

世界地图可以无限放大_不敢相信!世界地图,你竟然骗了我这么多年...

本文转载自微信公众号&#xff1a;中国国家地理(ID:dili360)原文首发于2018年10月13日&#xff0c;标题为《世界地图&#xff0c;我竟然被你骗了这么多年&#xff01;》不代表FM93交通之声观点。都说眼见为实&#xff0c;其实眼见到的也不一定为实相信你们很多人都以为世界就像…

WebAssembly + Dapr = 下一代云原生运行时?

简介&#xff1a; 云计算已经成为了支撑数字经济发展的关键基础设施。云计算基础设施也在持续进化&#xff0c;从 IaaS&#xff0c;到容器即服务&#xff08;CaaS&#xff09;&#xff0c;再到 Serverless 容器和函数 PaaS (fPaaS 或者 FaaS)&#xff0c;新的计算形态相继出现。…

Service Mesh 开源实现之 Istio 架构概览

来源&#xff1a;无敌码农作者&#xff1a;无敌码农今天的文章将从更宏观的概念和架构入手&#xff0c;来全面介绍Istio这一最著名的服务网格开源解决方案&#xff0c;以求从整体上将Istio实现服务网格的核心原理阐述清楚&#xff01;Istio中的关键概念要学习Istio需要先明确以…

mysql外键约束分数_MySQL提高(外键约束)

外键约束1.条件语句的写法在sql中可以通过where 条件语句 来对操作对象进行筛选 -筛选a.比较运算符&#xff1a;&#xff0c;<>,,<,>注意&#xff1a;判断一个字段的值是否为空不用使用和<>&#xff0c;而是使用is null和is not nullselect number from t_co…

Java Map中那些巧妙的设计

简介&#xff1a; 他山之石可以攻玉&#xff0c;这些巧妙的设计思想非常有借鉴价值&#xff0c;可谓是最佳实践。然而&#xff0c;大多数有关Java Map原理的科普类文章都是专注于“点”&#xff0c;并没有连成“线”&#xff0c;甚至形成“网状结构”。因此&#xff0c;本文基于…

java json转xml_关于JSON与XML的区别比较

现在互联网上&#xff0c;最流行的两大传输数据的标准就是json和XML了&#xff0c;关于谁是最好的&#xff0c;一直以来都是人们争论的话题&#xff0c;其实各有各的缺点和优点&#xff1b;1.定义介绍(1).XML定义扩展标记语言 (Extensible Markup Language, XML) &#xff0c;用…

揭秘!阿里实时数仓分布式事务Scale Out设计

简介&#xff1a; Hybrid Transaction Analytical Processing(HTAP) 是著名信息技术咨询与分析公司Gartner在2014年提出的一个新的数据库系统定义&#xff0c;特指一类兼具OLTP能力&#xff08;事务能力&#xff09;和OLAP能力&#xff08;分析能力&#xff09;的数据库系统。 …