<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chafferer_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chafferer_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chafferer_]]></copyright><item><title><![CDATA[docker 无法telnet宿主机的端口]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/122535401</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/122535401</guid><author>chafferer_</author><pubDate>Mon, 17 Jan 2022 10:53:52 +0800</pubDate><description><![CDATA[问题表现
Docker容器开启的服务，CentOS内部可以访问，用curl http://127.0.0.1:8011 可以访问。
CentOS的IP，外网可以正常Ping通。
容器对外端口，外网无法Telnet通。
外网无法访问Docker容器网站。

原因
CentOS防火墙的原因，需要允许NAT转发。



解决办法

前提是CentOS虚拟机网络要用桥接模式，让虚拟机IP保持跟缩主机同一段IP。


设置防火墙允许NAT转发。


firewall-cmd --zone=public --add-.]]></description><category></category></item><item><title><![CDATA[docker与宿主机网络不通]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/122440477</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/122440477</guid><author>chafferer_</author><pubDate>Tue, 11 Jan 2022 20:08:48 +0800</pubDate><description><![CDATA[转载
CentOS7 Docker容器无法ping通宿主机ip问题解决记录 - 蒲公英的狂想 - 博客园
]]></description><category></category></item><item><title><![CDATA[Linux 安装JAVA环境]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/118109490</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/118109490</guid><author>chafferer_</author><pubDate>Tue, 22 Jun 2021 16:09:40 +0800</pubDate><description><![CDATA[v博客前言


JDK是 Java 语言的软件开发工具包，主要用于移动设备、嵌入式设备上的java应用程序。在Linux上安装Tomcat，而Tomcat服务器运行时是需要JDK支持的，所以服务器必须配置好JDK用到的那些环境变量。


回到顶部

vuninstall OpenJDK

CentOS系统默认安装了openjdk的(如果操作系统不是最小安装),查看版本

rpm -qa | grep java或者java -version



可以得到OpenJDK的具体型号以及其他的基本信息

查询Ce]]></description><category></category></item><item><title><![CDATA[Kafka linux安装]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/118109394</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/118109394</guid><author>chafferer_</author><pubDate>Tue, 22 Jun 2021 16:08:16 +0800</pubDate><description><![CDATA[v阅读目录

v基础知识
	vKafka概念
	v安装Kafka
	v启动Kafka
	vKafka topic
	vKafka 生产/消费
	vKafka 博客总结
v博客前言


kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息，消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念，生产者往topic里写消息，消费者从读消息。为了做到水平扩展，一个topic实际是由多个partition组成]]></description><category></category></item><item><title><![CDATA[ElasticSearch Linux安装]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/117362926</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/117362926</guid><author>chafferer_</author><pubDate>Fri, 28 May 2021 14:58:32 +0800</pubDate><description><![CDATA[一、下载安装包
1、下载地址
https://www.elastic.co/cn/downloads/elasticsearch
2、选择版本（这里最最版本7.4.2）

二、上传到服务器安装
     这是我上传的目录 


解压后  tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

cd /elasticsearch-7.4.2
目录详情下

bin ：脚本文件，包括 ES 启动 &amp; 安装插件等等
config ： elasticsearch.]]></description><category></category></item><item><title><![CDATA[ElasticSearch在windows下安装]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/110082496</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/110082496</guid><author>chafferer_</author><pubDate>Tue, 24 Nov 2020 15:19:20 +0800</pubDate><description><![CDATA[ElasticSearch在windows下安装

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎，基于RESTful web接口。Elasticsearch是用Java开发的，并作为Apache许可条款下的开放源码发布，是当前流行的企业级搜索引擎。设计用于云计算中，能够达到实时搜索，稳定，可靠，快速，安装使用方便。

一、下载ElasticSearch
官网下载地址：https://www.elastic.co/cn/downloads/elast]]></description><category></category></item><item><title><![CDATA[.net core 3.1 Etag缓存验证，乐观并发]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107916883</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107916883</guid><author>chafferer_</author><pubDate>Mon, 10 Aug 2020 17:04:46 +0800</pubDate><description><![CDATA[1.安装nuget包
Marvin.Cache.Headers

2.startup.cs
//ConfigureServices
services.AddHttpCacheHeaders(expires=&gt; {
                expires.MaxAge = 60;
                expires.CacheLocation = Marvin.Cache.Headers.CacheLocation.Private;//保存数据boby
            }, ]]></description><category></category></item><item><title><![CDATA[.net core 输入验证]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107906180</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107906180</guid><author>chafferer_</author><pubDate>Mon, 10 Aug 2020 11:00:14 +0800</pubDate><description><![CDATA[1.Data Annotations
public class studentdto
    {
        [Display(Name ="ID")]
        
        public int sid { get; set; }
        [Display(Name = "性别")]
        public int xingbie { get; set; }
        [Display(Name = "班级ID")]
        public int cid { g]]></description><category></category></item><item><title><![CDATA[.net core3.1 AutoMapper]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107857527</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107857527</guid><author>chafferer_</author><pubDate>Fri, 07 Aug 2020 13:21:24 +0800</pubDate><description><![CDATA[1.添加nuget包
AutoMapper.Extensions.Microsoft.DependencyInjection

2.startup.cs
using AutoMapper;
using System;
//...
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());

3.新建文件夹Profile(配置映射),新建studentprofile.cs
public class studentprofile:Profil]]></description><category></category></item><item><title><![CDATA[.net core3.1 内容协商]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107856480</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107856480</guid><author>chafferer_</author><pubDate>Fri, 07 Aug 2020 10:19:34 +0800</pubDate><description><![CDATA[startup.cs
services.AddControllers(setup =&gt; {
                setup.ReturnHttpNotAcceptable = true;//默认false:返回默认格式，不返回406
                
                setup.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());//add添加在序列后
          ]]></description><category></category></item><item><title><![CDATA[webapi上传图片]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107835645</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107835645</guid><author>chafferer_</author><pubDate>Thu, 06 Aug 2020 11:32:29 +0800</pubDate><description><![CDATA[1，file上传图片
/// &lt;summary&gt;
        /// 上传图片
        /// &lt;/summary&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        [Route("Upload/FormImg")]
        [HttpPost]

        public async Task&lt;DTOTO&gt; UploadImg(List&lt;IFormFile&gt; files)
   ]]></description><category></category></item><item><title><![CDATA[.net core 区域路由]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107706329</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107706329</guid><author>chafferer_</author><pubDate>Fri, 31 Jul 2020 09:38:13 +0800</pubDate><description><![CDATA[webapi 添加区域路由
原：
app.UseEndpoints(endpoints =&gt;
            {
                endpoints.MapControllers();
                });

添加mvc区域：
app.UseEndpoints(endpoints =&gt;
            {
                endpoints.MapControllerRoute(
                name: "my]]></description><category></category></item><item><title><![CDATA[WebAPI 开启静态网页,设置主页]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/107706240</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/107706240</guid><author>chafferer_</author><pubDate>Fri, 31 Jul 2020 09:31:13 +0800</pubDate><description><![CDATA[Startup.Configure:
        DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
        defaultFilesOptions.DefaultFileNames.Clear();
        defaultFilesOptions.DefaultFileNames.Add("index.html");
        app.UseDefaultFiles(defaultFilesOp]]></description><category></category></item><item><title><![CDATA[jwt （token授权方式）]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106901044</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106901044</guid><author>chafferer_</author><pubDate>Mon, 22 Jun 2020 14:20:48 +0800</pubDate><description><![CDATA[jwt
1.安装包
Microsoft.AspNetCore.Authentication.JwtBearer
2.startup
//JWT
 services.AddScoped&lt;IAuthenticateService, TokenAuthenticationService&gt;();
            services.Configure&lt;TokenManagement&gt;(Configuration.GetSection("tokenConfig"));

        ]]></description><category></category></item><item><title><![CDATA[.net core 3.1 npoi导出excel文档]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106542674</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106542674</guid><author>chafferer_</author><pubDate>Thu, 04 Jun 2020 11:24:07 +0800</pubDate><description><![CDATA[.net core 3.1 npoi导出excel文档
实例
[HttpPost]
        [Route("Excel/Installer")]
        public ActionResult Excel1([FromForm]string name, [FromForm]DateTime? stime, [FromForm] DateTime etime)
        {
            
            if (etime == null)
            {]]></description><category></category></item><item><title><![CDATA[jwt （token授权方式）]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106541700</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106541700</guid><author>chafferer_</author><pubDate>Thu, 04 Jun 2020 11:08:11 +0800</pubDate><description><![CDATA[jwt
1.安装包
Microsoft.AspNetCore.Authentication.JwtBearer
2.startup
//JWT
            services.Configure&lt;TokenManagement&gt;(Configuration.GetSection("tokenConfig"));

            var token = Configuration.GetSection("tokenConfig").Get&lt;TokenManagement&]]></description><category></category></item><item><title><![CDATA[core3.1 跨域问题]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106541682</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106541682</guid><author>chafferer_</author><pubDate>Thu, 04 Jun 2020 11:07:41 +0800</pubDate><description><![CDATA[按照之前的配置，然后将TargetFramework改为.net core 3.1后的跨域报错信息如上。
startup.cs文件中，
-------------------net core 2.2的项目-------------------
public void ConfigureServices(IServiceCollection services){
services.AddCors(options =&gt; {
　　　　options.AddPolicy(“any”, builder =&gt]]></description><category></category></item><item><title><![CDATA[.net core3.1 efcore(生成实体类)]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106541670</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106541670</guid><author>chafferer_</author><pubDate>Thu, 04 Jun 2020 11:07:09 +0800</pubDate><description><![CDATA[.net core3.1 efcore(生成实体类)


    1.安装包

Install-Package MySql.Data.EntityFrameworkCore -Pre
Install-Package Pomelo.EntityFrameworkCore.MySql
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration....]]></description><category></category></item><item><title><![CDATA[.net core 学习笔记]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106541627</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106541627</guid><author>chafferer_</author><pubDate>Thu, 04 Jun 2020 11:06:39 +0800</pubDate><description><![CDATA[.net core 笔记


    项目框架


    Api

1.Program.cs：为项目入口文件，实质位控制台程序
2.Startup.cs：项目接口，服务注册

    声明周期

Transient：每次其他类的请求（不是指Http Request）都会创建一个新的实例，他比较适合轻量级的无状态的（Stateless）的service。
scope:每次http请求会创建一个实例
singleton：在第一次请求的时候就会创建一个实例，以后也只会存在这一个实例
下面为注册接口服务，（Add]]></description><category></category></item><item><title><![CDATA[.net core 3.1 swagger文档]]></title><link>https://blog.youkuaiyun.com/chafferer_/article/details/106541442</link><guid>https://blog.youkuaiyun.com/chafferer_/article/details/106541442</guid><author>chafferer_</author><pubDate>Thu, 04 Jun 2020 11:01:39 +0800</pubDate><description><![CDATA[.net core 3.1 swagger文档

1.安装包
Swashbuckle.AspNetCore

2.在Startup.cs 配置swagger  在ConfigureServices中添加代码
services.AddSwaggerGen(c =&gt;
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
            ...]]></description><category></category></item></channel></rss>